如何设置JLabel在JPanel中的位置,我添加以后始终是居中显示的,新手谢谢帮助拉

2024-12-22 21:26:10
推荐回答(2个)
回答1:

正确的使用布局管理器是完成界面布局的基础。

布局管理器推荐:MigLayout

JPanel默认的布局管理器是FlowLayout,而且alignment=FlowLayout.CENTER。所以若未指定布局管理器,则JPanel上所有控件均居中排列。

使用布局管理器首先应为容器确定布局管理器

如:

JPanel panel = new JPanel

panel.setLayout(setLayout(new java.awt.BorderLayout()); // 使用BorderLayout

推荐使用MigLayout。需要下载Miglayout包,使用方式具体参见MigLayout的手册。这里给出简单的使用方式:

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JLabel;

import net.miginfocom.swing.MigLayout;

import javax.swing.JTextField;

import javax.swing.JButton;

public class Test extends JPanel{

private JTextField textField;

private JTextField textField_1;

public Test() {

setLayout(new MigLayout("", "[][grow]", "[][][]"));

JLabel label = new JLabel("New label");

add(label, "cell 0 0,alignx trailing");

textField = new JTextField();

add(textField, "cell 1 0,growx");

textField.setColumns(10);

JLabel label_1 = new JLabel("New label");

add(label_1, "flowy,cell 0 1,alignx trailing");

textField_1 = new JTextField();

add(textField_1, "cell 1 1,growx");

textField_1.setColumns(10);

JPanel panel = new JPanel(); // 此Panel未设定布局管理器,故使用FLowLayout,且alignment=FlowLayout.CENTER

add(panel, "cell 0 2 2 1,grow");

JButton button = new JButton("New button");

panel.add(button);

JButton button_1 = new JButton("New button");

panel.add(button_1);

}

public static void main(String args[]){

JFrame frame = new JFrame("Test");

frame.add(new Test());

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setBounds(50, 50, 300, 150);

frame.setVisible(true);

}

}

回答2:


void addLabel(){
JLabel jl = new JLabel(Sale.sale_info);
jl.setFont(new java.awt.Font("宋体", Font.PLAIN,16));
display.add(jl);
display.validate();

i++;
}