java - 为什么 JButton 不显示在 JFrame 上?

标签 java swing jframe jbutton

当我运行程序时,窗口及其所有属性都正确,但按钮不显示,知道我做错了什么吗?

我有两个类 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();
    }
}

最佳答案

  1. 您没有将 JPanel 添加到框架中。

    panel.add(bt1);
    panel.add(bt2);
    panel.add(bt3);
    panel.add(bt4);
    setContentPane(panel);
    
  2. 您没有在 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();
            }
        });
    }
    
  3. 您并没有创建所有四个按钮:

    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/

相关文章:

java - 如何仅使用空格键来制作替代颜色?

java - JLabel 图形在错误的时间发生变化

java - 如何在一个Frame中获取用户输入并在另一个JFrame中获取输出?

java - 使用 URLConnection 进行连接池?

java 8并行流混淆/问题

java - 从 JDialog 返回值; dispose(), setVisible(false) - 例子

java - 单击按钮后无法修改或编辑 JFrame 字段

java - 缺少返回语句错误,我不知道错误是什么

指示某些值可用的 Java 信号/事件机制

java - joptionpane 和带有是或否按钮的确认对话框