我目前正在尝试使用AWT和Swings在地图中创建移动角色。
我在尝试在我的图片上创建GridLayout
时需要帮助。我尝试过使用setLayout(new GridLayout())
,但它无效。
如果可能的话,我还想在其中加入KeyListener
。
目前,这是我的图像代码:
public class GUI extends JFrame{
GUI(){
setLayout(new FlowLayout());
ImageIcon image1 = new ImageIcon("path-to-backgroundImage");
JLabel label1 = new JLabel(image1);
add(label1);
}
public static void main(String[] args) {
GUI gui = new GUI();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setVisible(true);
gui.pack();
gui.setTitle("Map");
}
}
这是我使用代码的GridLayout,但它不起作用:
setLayout(new GridLayout(ROWS, COLS));
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
JLabel label = new JLabel(cellIcon);
add(label);
}
}
总是非常感谢帮助!
答案 0 :(得分:0)
JLabel label1 = new JLabel(image1);
add(label1);
您可以将标签添加到框架中,这是合理的:
setLayout(new GridLayout(ROWS, COLS));
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
JLabel label = new JLabel(cellIcon);
add(label);
}
}
但随后您更改了框架的布局并为框架添加了更多标签。你的代码没有意义。如果要将标签网格添加到背景图像,则代码应为:
label1.setLayout(new GridLayout(ROWS, COLS));
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
JLabel label = new JLabel(cellIcon);
label1.add(label);
}
}
如果您需要更多帮助,请提供适当的SSCCE来证明问题。随机的代码行没有告诉我们代码的使用方式。