一个或多个面板不会显示在框架上

时间:2014-05-30 23:40:10

标签: java button panel frame

import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Frame extends JFrame {

private JPanel buttonPanel;
private JButton[][] buttons;

private JPanel otherPanel;

public Frame() {
    setSize(500, 600);
    setLocation(100, 100);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(null);
    setResizable(false);
    setVisible(true);

    buttonPanel = new JPanel();
    buttonPanel.setLocation(0, 0);
    buttonPanel.setSize(500, 500);
    buttonPanel.setLayout(new GridLayout(8, 8));
    buttons = new JButton[8][8];
    for(int i = 0; i < 8; i++){
        for(int j = 0; j < 8; j++){
            buttons[i][j] = new JButton("" + i);
            buttonPanel.add(buttons[i][j]);
        }
    }
    add(buttonPanel);
}

}

应该将按钮放在面板上,然后将面板放在框架上。当它运行时,框架上没有显示任何内容 谢谢你的帮助

2 个答案:

答案 0 :(得分:1)

  1. 查看您将JFrame设置为可见的位置。然后看看你添加按钮的位置。有点乱,你不觉得吗?这就像拍一张椅子的照片,然后这样做,要求别人坐在椅子上。如果你想拍摄肖像,让他们坐在椅子上首先,然后然后拍照。在添加所有组件后调用setVisible(true)
  2. 摆脱对null布局的使用,因为这会使GUI非常不灵活,虽然它们在一个平台上看起来不错,但在大多数其他平台或屏幕分辨率上看起来很糟糕,并且很难更新和维护。相反,您将需要学习和学习布局管理器,然后嵌套JPanels,每个JPanels都使用自己的布局管理器来创建令人满意的复杂GUI,这些GUI在所有操作系统上都很好看。

答案 1 :(得分:0)

主要在哪里? 你还必须从JFrame创建一个对象并使用它来添加这些方法,例如JFrame f = new JFrame; f.setSize(..,..); 等等..