Swing提供了一些具有特殊功能的容器,这些特殊容器可以用于创建一些更复杂的用户界面
1.使用JSplitPane
JSplitPane用于创建一个分割面板,它可以将一个组件(通常是一个容器)分割成两个部分,并提供一个分割条,用户可以拖动该分割条来调整两个部分的大小。
JSplitPane使用步骤:
2.使用JTabledPane
JTabledPane可以很方便的在窗口上放置多个标签页,每个标签页相当于获得了一个与外部容器具有相同大小的组件摆放区域。
代码演示:
package com.aynu.layout;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class JTabledPaneTest {
JFrame jf = new JFrame("测试JTabledPane");
//声明组件
JTabbedPane tabbedPane =new JTabbedPane(SwingConstants.LEFT,JTabbedPane.SCROLL_TAB_LAYOUT);
public void init(){
//组装视图
//添加标签
tabbedPane.addTab("用户管理",new ImageIcon(""),new JList<String>(new String[]{"用户一","用户二","用户三"}));
tabbedPane.addTab("商品管理",new JList<String>(new String[]{"商品一","商品二","商品三"}));
tabbedPane.addTab("订单管理",new ImageIcon(""),new JList<String>(new String[]{"订单一","订单二","订单三","订单四"}));
//完成设置
tabbedPane.setEnabledAt(0,false);
tabbedPane.setSelectedIndex(1);
//监听当前标签面板的选中情况
tabbedPane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
int selectedIndex = tabbedPane.getSelectedIndex();
JOptionPane.showMessageDialog(jf,"当前选中了第"+(selectedIndex+1)+"个标签");
}
});
jf.add(tabbedPane);
//设置窗口的位置和大小
jf.setBounds(400,400,400,400);
//固定窗口大小
jf.setResizable(false);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.pack();
jf.setVisible(true);
}
public static void main(String[] args) {
new JTabledPaneTest().init();
}
}
jf.setBounds(400,400,400,400)设置的窗口大小没有作用,窗口的大小还是最佳大小如果要修改窗口的大小需要注释掉 jf.pack(); 此行代码(此行代码的作用是将窗口调节至最佳大小)。
注释掉此行代码后在设置窗口的大小就可以设置成功了。