Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可点击的JLabel框网格_Java_User Interface_Jpanel_Jlabel - Fatal编程技术网

Java 可点击的JLabel框网格

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

我是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 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,你到底打算怎么做,把它们变成变量?:)也许我们可以建议一个替代方案。