参考代码
import javax.swing.*import java.awt.*
public class DemoFrame extends JFrame {
private JTabbedPane tpp
public DemoFrame() {
tpp = new JTabbedPane(JTabbedPane.LEFT) //指定JTabbedPane靠左
JPanel jp1 = new JPanel()
jp1.setBackground(Color.YELLOW)
tpp.add("TabLevel # 1", jp1)
JPanel jp2 = new JPanel()
jp2.setBackground(Color.RED)
tpp.add("TabLevel # 2", jp2)
add(tpp)
setTitle("JTabbedPane Nested Demonstration")
setSize(new Dimension(600, 500))
setLocationRelativeTo(null)
setDefaultCloseOperation(EXIT_ON_CLOSE)
}
public static void main(String[] args) {
DemoFrame main = new DemoFrame()
main.setVisible(true)
}
}
拓展和思考:
关于修改选项卡之间的距离,增加特效等, 在java swing里 其实自定义组件的外观,一般是继承BasicXxxUI 来实现 .
如果想要实现一些特殊的效果, 也可以自己使用按钮, 标签,面板 等 自己模拟一个 选项卡 .
例如 下面的组件, 就是自己做的一个选项卡的效果, 使用按钮来实现, 当鼠标移动到按钮上时, 按钮变黄. 移开时恢复按钮的初始外观. 当按钮被点击时, 按钮变成白色. 始终只能有一个按钮处于被选中状态. 根据选中按钮的不同, 来展示不同的面板.
又比如下面的选项卡, 是 JPanel 里放入图片和文字 来进行模仿的
swing没有带关闭按钮的选项卡,swing的选项卡组件为JTabbedPane,是不带关闭按钮的,要实现带关闭按钮的选项卡,最直接的方法是重写JTabbedPane的UI,其次也可以用组件组合的方式来模拟选项卡页面,然后用卡片式布局来设置这些选项页面的切换关系extjs中通过监听sidebarchange事件来收缩左侧菜单的。1.在新增选项卡中配置一个自定义属性sidebarChange,默认值为false,用于保存左边导航菜单是否发生展开收缩动作。
2.在新增的选项卡中添加activate监听事件,当选项卡被激活且sidebarChange属性值为true时,则通过tab.loader.load()重新加载选项卡内容。
3.在左边功能导航面板中配置相应的展开和收缩事件的监听。及相应的处理方法。
这样,当左边功能导航面板收缩或展开时,当前的选项卡会重新加载。
4.至此,当左边导航面板收缩或展开时,就解决了gridpanel宽度不跟着自动变化问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)