gpt4 book ai didi

java - 如何通过两种不同的方法在同一个文本字段上书写?

转载 作者:行者123 更新时间:2023-12-02 00:52:37 25 4
gpt4 key购买 nike

我使用 JFrame 在 java 中创建了一个框架,然后添加了一个面板 (JPanel),我想在其中创建一个文本字段来写入内容。问题是我需要用不同的方法在那里写东西。我怎样才能做到这一点?如果我创建一个 TextField,我无法通过不是我创建它的方法来修改它,或者不是?我是初学者,所以请不要告诉我做非常复杂的事情。我希望我已经说清楚了

public class Principale {
JLabel label = new JLabel("test");

private static JFrame createFrame(){

JFrame sos0 = new JFrame();
sos0.setVisible(true);
sos0.setSize(500, 400);
sos0.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sos0.setTitle("This is a frame");
sos0.setLocationRelativeTo(null);
sos0.setLayout( new GridBagLayout() );

sos0.add(label);

return sos0;

} // end of method createFrame

如果我这样做,我会收到错误,因为无法从静态竞赛中引用对象标签

最佳答案

我认为问题可能在于创建框架每次都会创建一个新框架,您最好创建一个返回 void 的方法来创建框架。就我个人而言,我会将 JLabel 声明为 null 并在 create 方法中对其进行初始化。您还可以将框架及其内容打印到控制台,以查看变量是否有任何问题。

更正:将代码放入 IDE 后,它会通知我该错误。您的标签变量需要是静态的才能从静态方法访问。例如。 静态 JLabel 标签 = new JLabel("测试");

以下是您的解决方案的示例:

private static JLabel label;

private static void createFrame(){

JFrame sos0 = new JFrame();
sos0.setVisible(true);
sos0.setSize(500, 400);
sos0.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sos0.setTitle("This is a frame");
sos0.setLocationRelativeTo(null);
sos0.setLayout(new GridBagLayout());

label = new JLabel("test");
sos0.add(label);

}

关于java - 如何通过两种不同的方法在同一个文本字段上书写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57845041/

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