我的项目有些卡住。我有一个JFrame和一个JTextArea和一个按钮,单击该按钮时将在框架的文本区域中打开测试类。所以我的问题是,如何使测试类在框架的文本区域中打开?

我试过getText(test()),但是它说找不到符号方法测试。

这是我的JFrame代码:

package sunday;

/**
 *
 * @author warwick
 */
public class sunday1 extends javax.swing.JFrame {
/**
 * Creates new form sunday1
 */
public sunday1() {
    initComponents();
}

/**
 * This method is called from within the constructor to initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is always
 * regenerated by the Form Editor.
 */
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

    jScrollPane1 = new javax.swing.JScrollPane();
    TxtField = new javax.swing.JTextArea();
    btnOpen = new javax.swing.JToggleButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    TxtField.setColumns(20);
    TxtField.setRows(5);
    jScrollPane1.setViewportView(TxtField);

    btnOpen.setText("Open");
    btnOpen.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btnOpenActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(btnOpen)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(57, 57, 57))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(52, 52, 52)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(layout.createSequentialGroup()
                    .addGap(101, 101, 101)
                    .addComponent(btnOpen)))
            .addContainerGap(36, Short.MAX_VALUE))
    );

    pack();
}// </editor-fold>

private void btnOpenActionPerformed(java.awt.event.ActionEvent evt) {

    TxtField.setText(test());
}


这是我的班级代码,必须显示在框架的文本区域中。

public class sundaytest {
  private void test() {
    System.out.println("Hello World");
  }
}

最佳答案

这里有些错误。


找不到test(),因为类中没有试图执行它的测试功能。 (星期日1)
sundaytest中的test()是私有的,这意味着sundaytest以外的任何类都不能执行它。
test()是一个无效方法,它不会返回TxtField.setText(String str)寻找的String对象。


要解决这些问题,您可以执行以下操作:

一个。修改您的btnOpenActionPerformed方法以设置字符串,而无需利用单独的类(sundaytest),如下所示:

TxtField.setText("Text to be set");


要么

b。修改sundaytest中的test()方法以从sunday1进行访问,并在执行时返回String对象。

public String test() {
    return "Hello World";
}


并修改btnOpenActionPerformed以通过sundaytest访问此功能。

TxtField.setText(new sundaytest().test());

10-05 18:20