Java 可点击的JLabel框网格
我是JavaGUI新手,我正在尝试放置一个由7 x 12 jlabel/box组成的网格。我需要得到每个盒子的X和Y坐标。 当我运行下面的代码时,它将每个框显示为0,0。。。任何帮助都将不胜感激Java 可点击的JLabel框网格,java,user-interface,jpanel,jlabel,Java,User Interface,Jpanel,Jlabel,我是JavaGUI新手,我正在尝试放置一个由7 x 12 jlabel/box组成的网格。我需要得到每个盒子的X和Y坐标。 当我运行下面的代码时,它将每个框显示为0,0。。。任何帮助都将不胜感激 import java.awt.Color; import java.awt.Dimension; import java.awt.GridLayout; import javax.swing.*; public class GridPanel extends JPanel{ private f
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.*;
public class GridPanel extends JPanel{
private final int HEIGHT = 7;
private final int WIDTH = 12;
private final int TOTAL_BOXES = HEIGHT * WIDTH;
JLabel box[];
public GridPanel()
{
setLayout(new GridLayout(7,12));
box = new JLabel[TOTAL_BOXES];
for (int x = 0;x<box.length;x++){
box[x]=new JLabel("");
box[x].setOpaque(true);
box[x].setPreferredSize(new Dimension(30,30));
box[x].setBackground(Color.white);
box[x].setBorder(BorderFactory.createLineBorder(Color.black));
int a = box[x].getX();
int b = box[x].getY();
String test = b + "," + a;
box[x].setText(test);
}
System.out.println(box[45].getX());
for (int x = 0;x<box.length;x++)
add(box[x]);
}
导入java.awt.Color;
导入java.awt.Dimension;
导入java.awt.GridLayout;
导入javax.swing.*;
公共类GridPanel扩展了JPanel{
私人最终整数高度=7;
私有最终整数宽度=12;
专用最终整型总尺寸=高度*宽度;
JLabel盒[];
公众谘询委员会(
{
setLayout(新网格布局(7,12));
盒子=新的JLabel[盒子总数];
对于(int x=0;x第一个问题,为什么您需要知道标签的x/y坐标?它们将成为变量,然后与程序后端中的对象相关……为什么您在创建JLabel
s时没有使用HEIGHT
和WIDTH
变量?!哦,是的,高度和宽度只是一些剩余部分“我还没拿出来…@Daviepark,你到底打算怎么做,把它们变成变量?:)也许我们可以建议一个替代方案。