我正在尝试使用gridlayout格式化Java GUI,但是我不确定从哪里开始对其进行格式化。我没有足够的声誉提供图片,但我希望GUI在左侧显示8x8网格,在右侧显示一些JLabel。我将如何去做?
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.GridLayout;
import java.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.util.logging.*;
import javax.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.imageio.*;
public class ButtonGrid {
JFrame frame=new JFrame(); //creates frame
JButton[][] grid; //names the grid of buttons
JLabel message;
public ButtonGrid(int width, int length){
frame.setLayout(new GridLayout(width,length)); //set layout
grid=new JButton[width][length]; //size of grid
int square =0;
for(int y=0; y<length; y++){
for(int x=0; x<width; x++){
String squareString = String.valueOf(square);
grid[x][y]=new JButton(squareString); //makes newbutton
frame.add(grid[x][y]); //adds button to grid
square++;
}
}
message = new JLabel("program is messing up");
frame.add(message);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack(); //sets appropriate size for frame
frame.setVisible(true); //makes frame visible
}
public static void main(String[] args) {
new ButtonGrid(8,8);//makes new ButtonGrid with 2 parameters
}
}
因此,你们能提供的任何帮助将不胜感激。
GridLayout
众所周知,它对想要空间的东西不利。最好的选择是GridBagLayout
(但是对于像这样的简单东西来说太复杂了),或者将视图嵌套在其他框架中。您可以像现在一样将所有这些按钮放在一个框架上(称为frameA
)GridLayout
,然后添加frameA
到frameB
(父框架)。您可以添加到JLabel
,frameB
并确保它不会弄乱按钮。您可以根据需要使用简单的BorderLayout
forframeB
或grid或任何其他布局。就个人而言,我认为将事物嵌套在更多帧中要容易得多,因为它使布局简单得多。希望能有所帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句