我有一个项目,我有点卡住了。单击按钮时,我有一个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");
}
}
答案 0 :(得分:1)
这里有一些问题。
test(),因为尝试执行它的类中没有测试函数。 (sunday1)
sundaytest中的test()是私有的,这意味着sundaytest之外的任何类都不能执行它。
test()是一个void方法,它不会返回TxtField.setText(String str)正在寻找的String对象。
要解决这些问题,您可以执行以下操作:
一个。修改你的方法btnOpenActionPerformed来设置字符串而不使用像这样的单独的类(sundaytest):
TxtField.setText("Text to be set");
或者
湾修改sundaytest中的test()方法,使其可以从sunday1访问,并在执行时返回一个String对象。
public String test() {
return "Hello World";
}
修改btnOpenActionPerformed以通过sundaytest访问此功能。
TxtField.setText(new sundaytest().test());