gpt4 book ai didi

java - 为什么这个 JLabel 不在这个 Java 应用程序的中心?

转载 作者:行者123 更新时间:2023-11-30 07:16:32 26 4
gpt4 key购买 nike

Java 新手在这里:

我讨厌每次遇到问题时都问问题,但我不知道应该使用什么来让绿色的“Hello World”标签直接进入 JPanel 的中心。这是我的代码:

package game;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Javagame extends JPanel implements ActionListener{
protected JButton b1;
private JLabel label;
public Javagame() {
b1 = new JButton("Button!");
b1.setActionCommand("change");

b1.addActionListener(this);
add(b1);

label = new JLabel("Hello World!", SwingConstants.CENTER);
label.setFont(new Font("Arial", Font.BOLD, 20));
label.setForeground(new Color(0x009900));
add(label, BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e) {
if ("change".equals(e.getActionCommand())) {
label.setText("Hello Universe!");
b1.setActionCommand("changeBack");
}
if ("changeBack".equals(e.getActionCommand())) {
label.setText("Hello World!");
b1.setActionCommand("change");
}
}
private static void createWindow(){
JFrame frame = new JFrame("Javagame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(500,500));

Javagame newContentPane = new Javagame();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);

frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
createWindow();
}
}

BorderLayout.CENTER 似乎在 add() 中不起作用。任何帮助将不胜感激,谢谢!

最佳答案

JLabel 在父容器中居中,文本在标签内对齐。

尝试...

label.setHorizontalAlignment(JLabel.CENTER);
label.setVerticalAlignment(JLabel.CENTER);

关于java - 为什么这个 JLabel 不在这个 Java 应用程序的中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16848905/

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