java swing boxlayout_Swing-BoxLayout用法-入门

importjava.awt.BorderLayout;importjava.awt.Dimension;importjavax.swing.BorderFactory;importjavax.swing.Box;importjavax.swing.BoxLayout;importjavax.swing.DefaultListModel;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JList;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.ListSelectionModel;public class BoxLayoutDemo extendsJPanel {

JPanel sportPanel;

JPanel queryPanel;

JPanel middlePanel;publicBoxLayoutDemo() {//主面板由3个子面板组成,在水平方向排列

setLayout(new BoxLayout(this, BoxLayout.X_AXIS));this.setSportPanel();this.setMiddlePanel();this.setQueryPanel();this.add(sportPanel);this.add(middlePanel);this.add(queryPanel);

}private voidsetSportPanel() {

System.out.println("setSportPanel called");//本函数内包含以下两个控件

JLabel sourceLabel;//文字标签

JScrollPane sourceListScroller;//滚动条//文字标签

sourceLabel = new JLabel("运动项目");

sourceLabel.setAlignmentY(TOP_ALIGNMENT);

sourceLabel.setBorder(BorderFactory.createEmptyBorder(4, 5, 0, 5));//创建一个列表,包含运动项目

DefaultListModel listModel = new DefaultListModel();

listModel.addElement("100米");

listModel.addElement("200米");

listModel.addElement("400米");

listModel.addElement("跳远");

listModel.addElement("跳高");

listModel.addElement("铅球");

JList sourceList = new JList(listModel);

sourceList

.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

sourceList.setVisibleRowCount(5);//初始状态保持5行可见//滚动条

sourceListScroller = newJScrollPane(sourceList);

sourceListScroller

.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

sourceListScroller.setAlignmentY(TOP_ALIGNMENT);//开始布局主面板

sportPanel = newJPanel();

sportPanel.setLayout(new BoxLayout(sportPanel, BoxLayout.Y_AXIS));//垂直布局

sportPanel.setBorder(BorderFactory.createBevelBorder(1));

sportPanel.add(sourceLabel);//加入文字标签到

sportPanel.add(sourceListScroller);//加入运动项目列表

}private voidsetMiddlePanel() {//本函数包含2个按钮

JButton toTargetButton = new JButton(">>");

JButton toSourceButton= new JButton("<

middlePanel = newJPanel();

middlePanel.setBorder(BorderFactory.createBevelBorder(1));

middlePanel.setLayout(new BoxLayout(middlePanel, BoxLayout.Y_AXIS));//主面板为垂直布局

middlePanel.add(toTargetButton);//添加第一个按钮>>

middlePanel.add(Box.createRigidArea(new Dimension(15, 15)));//中间添加一个看不见的rigidArea

middlePanel.add(toSourceButton);//添加第二个按钮<<

}private voidsetQueryPanel() {//本函数包含2个控件

JLabel targetLabel;

JScrollPane targetListScroller;//文字标签

targetLabel = new JLabel("查询项目");

targetLabel.setAlignmentY(TOP_ALIGNMENT);

targetLabel.setBorder(BorderFactory.createEmptyBorder(4, 5, 0, 5));//创建列表查询项目

DefaultListModel targetListModel = new DefaultListModel();

targetListModel.addElement("100米");

JList targetList = new JList(targetListModel);

targetList

.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);//滚动条

targetListScroller = newJScrollPane(targetList);

targetListScroller

.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

targetListScroller.setAlignmentY(TOP_ALIGNMENT);//设置主面板布局

queryPanel = newJPanel();

queryPanel.setLayout(new BoxLayout(queryPanel, BoxLayout.Y_AXIS));//垂直布局

queryPanel.setBorder(BorderFactory.createBevelBorder(1));

queryPanel.add(targetLabel);//添加文字标签

queryPanel.add(targetListScroller);//添加滚动条

}public static voidmain(String[] args) {

JFrame frame= new JFrame("BoxlayoutDemo");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setContentPane(newBoxLayoutDemo());

frame.pack();//frame.repaint();

frame.setLocationRelativeTo(null);

frame.setVisible(true);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值