我的项目有些卡住。我有一个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());