当我运行程序时,窗口及其所有属性都正确,但按钮不显示,知道我做错了什么吗?
我有两个类 window 和 TimeTable0:
这是窗口:
package timetable0;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class window extends JFrame {
JButton bt1,bt2,bt3,bt4 = new JButton();
JPanel panel = new JPanel();
public void ventana() {
setResizable(false);
setTitle("Time Table");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,550);
setVisible(true);
bt1.setText("Show Grades");
bt2.setText("Show Time Table");
bt3.setText("");
bt4.setText("");
panel.add(bt1);
panel.add(bt2);
panel.add(bt3);
panel.add(bt4);
}
public void actions (){
bt1.addActionListener((ActionEvent e) -> {
System.out.println("");
});
bt2.addActionListener((ActionEvent e) -> {
System.out.println("");
});
bt3.addActionListener((ActionEvent e) -> {
System.out.println("");
});
bt4.addActionListener((ActionEvent e) -> {
System.out.println("");
});
}
}
这是 TimeTable0:
package timetable0;
public class TimeTable0 {
public static void main(String[] args) {
window menu = new window();
menu.ventana();
menu.actions();
}
}
最佳答案
您没有将
JPanel
添加到框架中。panel.add(bt1); panel.add(bt2); panel.add(bt3); panel.add(bt4); setContentPane(panel);
您没有在 Event Dispatch Thread 上运行该程序:
public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { window menu = new window(); menu.ventana(); menu.actions(); } }); }
您并没有创建所有四个按钮:
JButton bt1 = new JButton(); JButton bt2 = new JButton(); JButton bt3 = new JButton(); JButton bt4 = new JButton();
关于java - 为什么 JButton 不显示在 JFrame 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32151257/