boxlayout测试:
代码
package com.gui.main;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.SwingUtilities;
import javax.swing.border.Border;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import javax.swing.border.BevelBorder;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Toolkit;
public class Program {
public static void createWindow(){
JFrame awindow=new JFrame("This is the Window Title");
//获取Toolkit
awindow.setLocationRelativeTo(null);
//left part of the box
Box left=Box.createVerticalBox();
left.add(Box.createVerticalStrut(30)); //支架
ButtonGroup radioGroup=new ButtonGroup();
JRadioButton rButton;
radioGroup.add(rButton=new JRadioButton("Red"));
left.add(rButton);
left.add(Box.createVerticalStrut(30));
radioGroup.add(rButton=new JRadioButton("Green"));
left.add(rButton);
left.add(Box.createVerticalStrut(30));
radioGroup.add(rButton=new JRadioButton("Blue"));
left.add(rButton);
left.add(Box.createVerticalStrut(30));
radioGroup.add(rButton=new JRadioButton("Yellow"));
left.add(rButton);
left.add(Box.createGlue()); //胶
JPanel leftPanel=new JPanel(new BorderLayout());
leftPanel.setBorder(new TitledBorder(new EtchedBorder(),"Line Color"));
leftPanel.add(left,BorderLayout.CENTER);
Box right=Box.createVerticalBox();
right.add(Box.createVerticalStrut(30));
right.add(new JCheckBox("Dashed"));
right.add(Box.createVerticalStrut(30));
right.add(new JCheckBox("Thick"));
right.add(Box.createVerticalStrut(30));
right.add(new JCheckBox("Rounded"));
right.add(Box.createGlue());
//Create a panel with a titled border to hold the right Box container
JPanel rightPanel=new JPanel(new BorderLayout());
rightPanel.setBorder(new TitledBorder(new EtchedBorder(),"Line properties"));
rightPanel.add(right,BorderLayout.CENTER);
Box topBox = Box.createHorizontalBox();
topBox.add(leftPanel);
topBox.add(Box.createHorizontalStrut(5));
topBox.add(rightPanel);
JPanel bottonPanel=new JPanel();
bottonPanel.setBorder(new CompoundBorder(BorderFactory.createLineBorder(Color.black,1),BorderFactory.createBevelBorder(BevelBorder.RAISED)));
Dimension size=new Dimension(80,20);
Border edge=BorderFactory.createRaisedBevelBorder();
JButton jbtn;
bottonPanel.add(jbtn=new JButton("Defaults"));
jbtn.setBorder(edge);
jbtn.setPreferredSize(size);
bottonPanel.add(jbtn=new JButton("OK"));
jbtn.setBorder(edge);
jbtn.setPreferredSize(size);
bottonPanel.add(jbtn=new JButton("Cancel"));
jbtn.setBorder(edge);
jbtn.setPreferredSize(size);
Container content=awindow.getContentPane();
BoxLayout boxel=new BoxLayout(content, BoxLayout.Y_AXIS);
content.setLayout(boxel);
content.add(topBox);
content.add(bottonPanel);
awindow.pack();
awindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
awindow.setVisible(true);
}
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
createWindow();
}
});
}
}
6万+

被折叠的 条评论
为什么被折叠?



