JLabel 不居中
JLabel not Centering
所以我一直在开发一个 java 程序,我试图让 JLabel 在 window 的中间居中,但无论我做什么,标签都只在顶部中央。我希望有人可以帮助找到一种方法,使文本在 window 的中间居中。这是我的代码:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
public class Lottery extends JPanel implements ActionListener {
private static final long serialVersionUID = 5815877011755522230L;
private JLabel label;
public static void main(String[] args) {
make();
}
public Lottery() {
label = new JLabel("Hello There");
label.setHorizontalAlignment(JLabel.CENTER);
label.setVerticalAlignment(JLabel.CENTER);
add(label);
}
public static void make(){
JFrame frame = new JFrame("Lottery");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Lottery hi = new Lottery();
frame.setContentPane(hi);
frame.setSize(600, 600);
frame.setVisible(true);
}
}
谁能帮我解决这个问题。
替换添加(标签);与:
setLayout(new BorderLayout());
add(label, BorderLayout.CENTER);
别忘了导入 java.awt.BorderLayout;
您的代码在标签内对齐文本,但标签本身并未在您的面板中居中。无论如何,您都必须修改布局。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
public class Lottery extends JPanel {
private static final long serialVersionUID = 5815877011755522230L;
private JLabel label;
public static void main(String[] args) {
make();
}
public Lottery() {
label = new JLabel("Hello There");
label.setHorizontalAlignment(JLabel.CENTER);
label.setVerticalAlignment(JLabel.CENTER);
//add(label);
setLayout(new BorderLayout());
add(label, BorderLayout.CENTER);
}
public static void make(){
JFrame frame = new JFrame("Lottery");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Lottery hi = new Lottery();
frame.setContentPane(hi);
frame.setSize(600, 600);
frame.setVisible(true);
}
}
所以我一直在开发一个 java 程序,我试图让 JLabel 在 window 的中间居中,但无论我做什么,标签都只在顶部中央。我希望有人可以帮助找到一种方法,使文本在 window 的中间居中。这是我的代码:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
public class Lottery extends JPanel implements ActionListener {
private static final long serialVersionUID = 5815877011755522230L;
private JLabel label;
public static void main(String[] args) {
make();
}
public Lottery() {
label = new JLabel("Hello There");
label.setHorizontalAlignment(JLabel.CENTER);
label.setVerticalAlignment(JLabel.CENTER);
add(label);
}
public static void make(){
JFrame frame = new JFrame("Lottery");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Lottery hi = new Lottery();
frame.setContentPane(hi);
frame.setSize(600, 600);
frame.setVisible(true);
}
}
谁能帮我解决这个问题。
替换添加(标签);与:
setLayout(new BorderLayout());
add(label, BorderLayout.CENTER);
别忘了导入 java.awt.BorderLayout;
您的代码在标签内对齐文本,但标签本身并未在您的面板中居中。无论如何,您都必须修改布局。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
public class Lottery extends JPanel {
private static final long serialVersionUID = 5815877011755522230L;
private JLabel label;
public static void main(String[] args) {
make();
}
public Lottery() {
label = new JLabel("Hello There");
label.setHorizontalAlignment(JLabel.CENTER);
label.setVerticalAlignment(JLabel.CENTER);
//add(label);
setLayout(new BorderLayout());
add(label, BorderLayout.CENTER);
}
public static void make(){
JFrame frame = new JFrame("Lottery");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Lottery hi = new Lottery();
frame.setContentPane(hi);
frame.setSize(600, 600);
frame.setVisible(true);
}
}