JLabel未对中 我一直在研究java程序,我试图让JLabor集中在窗口中间,但是我做的任何事情都只是在顶部中心。我希望有人能帮助找到一种方法,以文字为中心的窗口。这是我的密码: 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); } }
有人能帮我解决这个问题吗。替换添加(标签);与: 不要忘记导入java.awt.BorderLayout 代码在标签内对齐文本,但标签本身未在面板中居中。无论如何,你都得修改一下布局JLabel未对中 我一直在研究java程序,我试图让JLabor集中在窗口中间,但是我做的任何事情都只是在顶部中心。我希望有人能帮助找到一种方法,以文字为中心的窗口。这是我的密码: 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); } },java,swing,jlabel,Java,Swing,Jlabel,有人能帮我解决这个问题吗。替换添加(标签);与: 不要忘记导入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; imp
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.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);
}
}
屏幕截图:您可以更改标签的垂直/水平对齐方式,或者尝试使用GridBagLayout而不是BorderLayout您可以更改标签的垂直/水平对齐方式,或者尝试使用GridBagLayout而不是BorderLayoutHanks,但文本仍然没有完全居中,那么,你能告诉我如何使用尺寸之类的东西来微调对齐方式吗?在发布之前,我已经测试过了,它看起来非常居中(在前面的回答中添加了一个屏幕截图),但我没有用尺子验证它,也没有计算像素,所以我相信它可能不完美:)然而,我的建议是使用MigLayout。这个工具非常复杂,但功能强大且灵活。你必须学会如何使用它,但结果是值得努力的。它是根据BSD许可证授权的,这允许你甚至在商业专有项目中使用它。谢谢,但是文本仍然没有完全居中,所以你能告诉我如何使用像尺寸这样的东西来微调对齐方式吗?我在发布之前已经测试过了,它看起来对我来说非常居中(在前面的回答中添加了一个屏幕截图),但我没有用尺子验证它,也没有计算像素数,所以我认为它可能并不完美:)不过,我的建议是使用MigLayout。这个工具非常复杂,但功能强大且灵活。你必须学会如何使用它,但结果是值得努力的。它是根据BSD许可证授权的,这允许您甚至在商业专有项目中使用它。