gpt4 book ai didi

Java 方法被调用,但元素未在 GUI 中显示

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

我有以下 Java 方法,我试图用它来向 GUI 添加一些按钮:

private void addButtons(){
JButton addBtn = new JButton("Add");
JButton saveBtn = new JButton("Save");

addBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
/*Code to be added here */
}
});
addBtn.setBounds(1150, 135, 30, 15);

saveBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
/*Code to be added here */
}
});
saveBtn.setBounds(1190, 135, 30, 15);
System.out.println("'addButtons()' method is being called");
}

我从 private void initialize() 调用此方法方法在同一个类中。我知道initialize()正在被调用,因为它执行的所有其他方法调用都在发生,并显示在 GUI 中。

但是,由于某种原因,我尝试使用此方法创建并添加到 GUI 的按钮没有显示...

谁能告诉我这是为什么,以及我做错了什么?

编辑

抱歉 - 我正在调用 private void initialize() 中的方法同一类中的方法:

private void initialize(){
...
(other code that is successfully adding stuff to the GUI)
...
addButtons();
}

我看到System.out.println() addButtons()结尾的消息当我单击调用 initialize() 的按钮时,控制台中的方法方法...以及“initialize()”方法中的所有其他代码都被调用(例如,它打开一个新窗口,并向窗口添加一些文本、文本框和表格)...

编辑 26/06/2014 @ 09:15

我编写此代码的类扩展了 JPanel :

public class JConfigurationPane extends JPanel implements UndoableEditListener, ChangeListener

我现在不再使用 addButtons()我之前提到过的方法,我正在尝试使用我的 initialize()将按钮添加到 JPanel 的方法:

public void initialize(){
// Code that initialises other elements in the GUI, such as Jlabels, layout, etc

JButton addBtn = new JButton("Add");
JButton saveBtn = new JButton("Save");

this.add(addBtn);
this.add(saveBtn);
}

但是,当我运行应用程序时,按钮仍然不会出现,尽管 initialize() 中的所有其他图形元素都已显示。方法...有什么想法吗?我在创建按钮以及将它们添加到 GUI 的位置之前和之后添加了一些调试 - 调试显示在控制台中,因此必须调用创建和添加按钮的代码...

最佳答案

您在哪里将这些按钮添加到表单中?

您正在方法 yes 中创建按钮,并将监听器附加到这些按钮,但按钮本身并未添加到表单中,这就是您看不到它们的原因。

例如,您应该这样做:

yourForm.add(addBtn);
yourForm.add(saveBtn);

或者将它们添加到 JPanel 或其他东西 - 最后确保添加此 JPanel

关于Java 方法被调用,但元素未在 GUI 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24412536/

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