Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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';s位置_Java_Swing_Jlabel_Null Layout Manager - Fatal编程技术网

Java 更改JLabel';s位置

Java 更改JLabel';s位置,java,swing,jlabel,null-layout-manager,Java,Swing,Jlabel,Null Layout Manager,经过大量的研究,我只能用标签来获得那个电路板图像。现在我不能改变它的位置。我尝试了很多功能。我需要的确切功能是什么 public class Board extends JFrame { private ImageIcon image; private JLabel label; public Board() { image = new ImageIcon(getClass().getResource("board.png")); lab

经过大量的研究,我只能用标签来获得那个电路板图像。现在我不能改变它的位置。我尝试了很多功能。我需要的确切功能是什么

public class Board extends JFrame {
    private ImageIcon image;
    private JLabel label;

    public Board() {
        image = new ImageIcon(getClass().getResource("board.png"));
        label = new JLabel(image);
        label.setLocation(200, 0);  //This is the one that I expected to do the thing
        add(label);
    }

    public static void main(String [] args) {
        Board b = new Board();
        b.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        b.setVisible(true);
        b.setSize(1280, 1000);
    }
}

不要尝试手动设置零部件的位置。Swing设计用于布局管理器。有关更多信息,请阅读上的Swing教程部分

定位组件的一种方法是给组件一个
边框
。所以你可以这样做:

label.setBorder( new EmptyBorder(200, 0, 0, 0) );

本教程还有一节介绍如何使用边框。首先,您不应该手动移动零部件。这应该留给layoutmanager处理。但是你可以。你面临的基本问题是——或者至少我认为是这样的:你的董事会仍然有一个layoutmanager设置,它将继续布局董事会,并且由于这个移动(和处理大小)你的组件。只需调用
setLayout(null)在定位标签之前,请指定标签的大小,并说明它应该起作用。

您想实现什么?您对布局有什么想法吗?我正在开发一个垄断应用程序,此图像是我的图板。董事会现在在中央。我希望它位于画面的左上角。当我添加setLayout(null)时,我的图像已经消失了。我看不到自己的形象。所以我没有使用它。还是谢谢。哦,sry,我忘了:layoutmanager也处理组件的大小。既然你的布局经理不在了,你也得这么做。设定你的棋盘大小,一切都会好起来哦!现在好多了。我要用你的。不知怎的,我觉得这样更好:)