java - JFrame 类在 Main 中不起作用

标签 java swing jframe extending

我正在尝试编写一个Java程序,该程序声明一个JFrame类并在main.c中创建该类的一个对象。在我的一生中,当我在 main 中创建“MyButtons”对象时,我无法让 JFrame 标题、JPanel 和 JButtons 出现。我得到的只是一个空白的 JPanel。

import java.awt.*;
import javax.swing.*;
import java.util.*;

class MyButtons extends JFrame
{
    public MyButtons()
    {
        JFrame frame = new JFrame("MyButtons");
        JPanel panel = new JPanel();
        frame.add(panel);

        JButton b1 = new JButton("Button 1");
        JButton b2 = new JButton("Button 2");

        panel.add(b1);
        panel.add(b2);     
    }      
}

class TestMyButtons
{
    public static void main(String [] args)
    {
       MyButtons go = new MyButtons();
       go.setSize(200,75);
       go.setLocation(200,300);
       go.setVisible(true);
       go.setResizable(true);
       go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }   
}

最佳答案

当您扩展 JFrame 时,您不需要在构造函数中创建另一个 JFrame 实例。只需将 panel 添加到已继承 JFrameMyButtons 即可。

public MyButtons(){

    //JFrame frame = new JFrame("MyButtons"); Commentted this
    JPanel panel = new JPanel();
    //frame.add(panel); And this

    JButton b1 = new JButton("Button 1");
    JButton b2 = new JButton("Button 2");

    panel.add(b1);
    panel.add(b2); 
    add(panel); // Add panel to MyButtons frame    
}     

关于java - JFrame 类在 Main 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29839048/

相关文章:

java - 将多个 JFrame 中的值检索到单个 JFrame

java - 工具栏在 Android 4.X 设备上不可见

java - 这个递归函数有什么作用?

java - 使用 Nimbus L&F 设置文件选择器颜色

java - 用于访问子面板元素的更漂亮的解决方案

java - 不可见的 JRadioButtons

java - 如何引用泛型参数自身的参数,比如T2<T>中的T?

java - 如何获取 Random.nextLong 可返回的所有可能值?

java - 鼠标点击时显示图像?

java - 在 JFrame 上查看附加图像