gpt4 book ai didi

java - 单击按钮时在文本区域中显示类输出

转载 作者:行者123 更新时间:2023-12-01 12:06:05 25 4
gpt4 key购买 nike

我有一个项目,但我有点卡住了。我有一个带有 JTextAreaJFrame 和一个按钮,单击该按钮将在框架的文本区域中打开测试类。所以我的问题是,如何让测试类在框架的文本区域中打开?

我已经尝试过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");
}
}

最佳答案

这里有一些问题。

  1. 未找到 test(),因为类中没有尝试执行它的测试函数。 (星期日1)

  2. sundaytest 中的 test() 是私有(private)的,这意味着 sundaytest 之外的任何类都不能执行它。

  3. test() 是一个 void 方法,不会返回 TxtField.setText(String str) 正在查找的 String 对象。

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

a.修改您的方法 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());

关于java - 单击按钮时在文本区域中显示类输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27587013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com