gpt4 book ai didi

java - JLabel定位不起作用

转载 作者:行者123 更新时间:2023-12-02 11:32:14 24 4
gpt4 key购买 nike

我需要将 JLabel 放置在我的 JFrame 中。我创建了一个标签并想要设置其位置,但是 setAlignmentsetBounds 都不起作用。标签始终停留在面板顶部并且不会移动。

import java.awt.GridLayout;
import javax.swing.*;

public class Start extends JFrame {
//JLabel label1 = new JLabel("HELLO!");
//JLabel label2 = new JLabel("CHOOSE LANGUAGE:");

public Start() {
super();
setSize(480, 360);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
setLayout(new GridLayout(2, 1));
//setLayout(new FlowLayout());
JPanel panel1 = new JPanel();

add(panel1);
JLabel label1 = new JLabel("HELLO!");
//label1.setBounds(20,20,100,20);
//label1.SetAlignmentX(20);
//label1.SetAlignmentY(20);
panel1.add(label1);
}

public static void main(String[] args) {
Start frame = new Start();
frame.setVisible(true);
}
}

你能帮忙吗?

最佳答案

以最小尺寸提供 ASCII 艺术或 GUI 预期布局的简单绘图,如果可调整大小,则具有更大的宽度和高度 - 以显示应如何使用额外的空间。这是我从当前描述中所能猜测到的最好的要求。

它展示了如何在红色面板中将标签的左侧和顶部填充(通过使用 EmptyBorder) 20 像素,在蓝色面板中填充 100 x 30。

enter image description here

阅读代码中的注释以获取更多提示,并检查 Java 文档以了解是否使用了与原始源代码不同的方法。

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;

public class Start extends JFrame {

public Start() {
super();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new GridLayout(2, 1));

JPanel panel1 = new JPanel(new FlowLayout(SwingConstants.LEADING));
panel1.setBorder(new LineBorder(Color.RED, 4));
add(panel1);
JLabel label1 = new JLabel("HELLO!", SwingConstants.LEADING);
//label1.setBounds(20,20,100,20);

// to provide a 20 x 20 offset, an empty border will do nicely.
label1.setBorder(new EmptyBorder(20, 20, 0, 0));

// Did you actually check the Java Docs for these methods?
// They do not do what you seem to think they do.
//label1.SetAlignmentX(20);
//label1.SetAlignmentY(20);
panel1.add(label1);

JPanel panel2 = new JPanel(new FlowLayout(SwingConstants.LEADING));
panel2.setBorder(new LineBorder(Color.BLUE, 4));
add(panel2);
JLabel label2 = new JLabel("HELLO!", SwingConstants.LEADING);
label2.setBorder(new EmptyBorder(30, 100, 30, 100));
panel2.add(label2);

pack();
}

public static void main(String[] args) {
Start frame = new Start();
frame.setVisible(true);
}
}

关于java - JLabel定位不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49211619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com