在我的井字游戏中,我已经画了线条,现在我正在尝试输入按钮。 我尝试输入的第一个按钮,我正在尝试设置边界,但它没有设置边界。 它只是填满了整个屏幕。 如何让button
只出现在右上角的方块中?
public class Project extends JFrame{
static JButton button = new JButton("");
static JButton button2 = new JButton("");
static JButton button3 = new JButton("");
static JButton button4 = new JButton("");
static JButton button5 = new JButton("");
static JButton button6 = new JButton("");
static JButton button7 = new JButton("");
static JButton button8 = new JButton("");
static JButton button9 = new JButton("");
public Project(){
setSize(1000, 750);
}
public void paint(Graphics g){
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
Line2D line = new Line2D.Float(100, 100, 100, 400);
Line2D line2 = new Line2D.Float(200, 100, 200, 400);
Line2D line3 = new Line2D.Float(0, 200, 300, 200);
Line2D line4 = new Line2D.Float(0, 300, 300, 300);
g2.draw(line);
g2.draw(line2);
g2.draw(line3);
g2.draw(line4);
}
public static void main(String[] args){
Project t = new Project();
t.setVisible(true);
button.setBounds(0, 0, 50, 50);
t.add(button);
}
}
您的项目类扩展了 JFrame,并且 JFrame contentPane(接受新组件的 JFrame 容器)默认使用 BorderLayout。当您将组件添加到使用 BorderLayout 的容器中而不指定组件的位置时,默认情况下,该组件会添加到 BorderLayout.CENTER 位置,从而有效地填充您的 GUI。有几种选择可以解决您的困境:
- 按照 PM77-1 的建议使用网格布局。这样,3x3 网格将把所有 9 个按钮放在大小相等的单元格中,填满容器。
- 根本不使用按钮和操作侦听器,而是使用 MouseListener 来检查按钮按下的位置,确定它是否为空单元格,并采取相应的操作。