我如何用两种不同的方法在同一个文本字段上书写?
How do i write on the same textfield from two different methods?
我在 java 中使用 JFrame 创建了一个框架,然后我添加了一个面板 (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
如果这样做,我会收到错误消息,因为无法从静态竞赛中引用对象标签
我认为问题可能在于创建框架每次都创建一个新框架,您最好创建一个 returns 无效的方法来创建框架。就个人而言,我会将 JLabel 声明为 null 并在 create 方法中对其进行初始化。您还可以打印出框架及其内容以控制台查看变量是否有任何问题。
更正: 将您的代码放入 IDE 后,它会通知我错误。您的标签变量需要是静态的才能从静态方法访问。
例如。 static JLabel label = new JLabel("test");
这是您的解决方案示例:
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 中使用 JFrame 创建了一个框架,然后我添加了一个面板 (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
如果这样做,我会收到错误消息,因为无法从静态竞赛中引用对象标签
我认为问题可能在于创建框架每次都创建一个新框架,您最好创建一个 returns 无效的方法来创建框架。就个人而言,我会将 JLabel 声明为 null 并在 create 方法中对其进行初始化。您还可以打印出框架及其内容以控制台查看变量是否有任何问题。
更正: 将您的代码放入 IDE 后,它会通知我错误。您的标签变量需要是静态的才能从静态方法访问。
例如。 static JLabel label = new JLabel("test");
这是您的解决方案示例:
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);
}