[英]Java - Filling a grid layout with JButtons based on indexes in an array
[英]Java getting the wrong number of jbuttons in grid layout
所以我是Java的新手,而我肯定是Swing的新手。
我有一個將由迷宮使用的80 X 80陣列。 我需要我的GUI具有80 X 80按鈕,以便它們可以綁定到數組中的值。
我不知道為什么我從這段代碼中只能得到五個或六個大按鈕。 如果有人可以告訴我如何使它工作,那么請先謝謝您,因為我很沮喪。
只需運行它,您就會明白我的意思……而且我想我還沒有弄清楚如何更改按鈕的顏色,而是更改了背景顏色。
這是我的代碼:
public static void draw() {
JFrame f = new JFrame();
f.setTitle("Maze");
f.setSize(800, 800);
f.setVisible(true);
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel c = (JPanel)f.getContentPane();
GridLayout gridLayout = new GridLayout();
c.setLayout(gridLayout);
for(int i =0;i<80;i++){
for(int j =0;j<80;j++){
JButton b = new JButton();
c.add(b, i,j);
b.setSize(10, 10);
b.setOpaque(true);
b.setBackground(Color.red);
}
}
}
}
80 * 10 > f.setSize(800, 800);
並且您的代碼無法適合FullHd監視器
f.pack()
代替f.setSize(800, 800);
f.pack()
和f.setVisible(true);
(可能是一個主要問題)應該是非靜態的最后代碼行,並重命名為! public void DrawMe() {
!,因為draw()
是Java API中的保留字
c.add(b, i,j);
應該也是最后一個代碼行(邏輯順序),
c.add(b, i,j);
為GridLayout設置行和列,而不是將JButton注入GridLayout
虛擬網格
從
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class DrawMe {
private JFrame frame = new JFrame();
private JPanel c = new JPanel();
private static final int column = 10;
private static final int row = 10;
public DrawMe() {
c.setLayout(new GridLayout(row, column));
for (int i = 0; i < column; i++) {
for (int j = 0; j < row; j++) {
JButton b = new JButton((i + 1) + " " + (j + 1));
c.add(b);
}
}
frame.add(c);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocation(150, 150);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new DrawMe();
}
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.