JavaAwtSwing之 Labe在BoxLayout中会被拉伸,而JLabel不会

143 阅读1分钟

Labe在BoxLayout中会被拉伸,而JLabel不会

在Box或BoxLayout中的效果对比

在 BoxLayout.Y_AXIS 中的效果, Label被拉伸, JLabel没被拉伸

package labelJLabel;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LabelJLabel在VBox中的效果 {
	static Frame frame = new Frame("LabelJLabel在VBox中的效果");
	public static void main(String...arguments) {
		frame.addWindowListener(new WindowAdapter() {
			@Override public void windowClosing(WindowEvent event) {frame.dispose();System.exit(0);}
		});
		frame.setBounds(100, 50, 1600, 900);
		frame.setLayout(new BoxLayout(frame, BoxLayout.Y_AXIS));
		for(int c=0;c<5;c++) {
			Label lb = new Label("Label-"+c); frame.add(lb); lb.setBackground(Color.YELLOW);
			JLabel jlb=new JLabel("JLabel-"+c); frame.add(jlb); jlb.setBackground(Color.BLUE); jlb.setOpaque(true);
		}
		frame.setVisible(true);
	}
}

在这里插入图片描述 Label被拉伸, JLabel没被拉伸

在 BoxLayout.X_AXIS 中的效果, Label被拉伸, JLabel没被拉伸

package labelJLabel;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LabelJLabel在HBox中的效果 {
	static Frame frame = new Frame("LabelJLabel在HBox中的效果");
	public static void main(String...arguments) {
		frame.addWindowListener(new WindowAdapter() {
			@Override public void windowClosing(WindowEvent event) {frame.dispose();System.exit(0);}
		});
		frame.setBounds(100, 50, 1600, 900);
		frame.setLayout(new BoxLayout(frame, BoxLayout.X_AXIS));
		for(int c=0;c<5;c++) {
			Label lb = new Label("Label-"+c); frame.add(lb); lb.setBackground(Color.YELLOW);
			JLabel jlb=new JLabel("JLabel-"+c); frame.add(jlb); jlb.setBackground(Color.BLUE); jlb.setOpaque(true);
		}
		frame.setVisible(true);
	}
}

在这里插入图片描述 Label被拉伸, JLabel没被拉伸