加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

java界面开发 之 tab组件(第四章)

(2010-12-07 17:34:03)
标签:

swing

jtabbedpane

it

分类: java学习

Tab是图形化界面常用的组件,java中使用JTabbedPane创建tab组件,下面提供了两种对tab组件的测试代码。

1.       Tab的简单应用

本例中,创建一个JTabbedPane,并为这个tab添加是个panel,随着标签头点击变动,显示不同的panel

package components;

 

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.GridLayout;

import java.awt.event.KeyEvent;

import java.net.URL;

 

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTabbedPane;

import javax.swing.SwingUtilities;

 

@SuppressWarnings("serial")

public class TabbedPaneDemo extends JPanel {

 

    public TabbedPaneDemo()

    {

       //设置布局管理器,默认的布局管理器是 BorderLayout,这里没那么复杂

       //选择GridLayout(1,1)即可,就是整个为一块     

       super(new GridLayout(1,1));

      

       //创建JTabbedPane

       JTabbedPane tp = new JTabbedPane();

       //创建标签显示的图标

       ImageIcon ii = createImageIcon("images/middle.gif");   

      

      

      

       //创建第一个标签下的panel

       JPanel panel0 = createPanel("panel0");

       //指定标签名,标签图标,panel,和提示信息

       tp.addTab("panel0",ii,panel0,"do noting");

       //设置标签的快捷键

       tp.setMnemonicAt(0, KeyEvent.VK_0);

      

      

       //第二个标签

       JPanel panel1 = createPanel("panel1");

       tp.addTab("panel1",ii,panel1,"do noting");

       tp.setMnemonicAt(1, KeyEvent.VK_1);

 

       //第三个标签

       JPanel panel2 = createPanel("panel2");

       tp.addTab("panel2",ii,panel2,"do noting");

       tp.setMnemonicAt(2, KeyEvent.VK_2);

 

       //第四个标签

       JPanel panel3 = createPanel("panel3");

       tp.addTab("panel3",ii,panel3,"do noting");

       tp.setMnemonicAt(3, KeyEvent.VK_3);

       //设置合适的显示尺寸,这个是必须的,因为如果所有的标签都

       //不指定适合的显示尺寸,系统无法判断初始显示尺寸大小

       //默认是使用最小化,并且对一个标签设计即可

       tp.setPreferredSize(new Dimension(500,500));

 

       //tabbedPanel添加到Jpanel

       add(tp);

      

       //设置窗口过小时,标签的显示策略

       tp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);

       //设置标签停放的位置,这里设置为左侧停放

       tp.setTabPlacement(JTabbedPane.LEFT);

      

    }

   

   

   

    private JPanel createPanel(String string) {

       //创建一个JPanel,并为构造函数初始false

       //表示不适用双缓冲

       JPanel panel = new JPanel(false);

      

       //设置布局

       panel.setLayout(new GridLayout(1,1));

      

       //创建一个label放到panel

       JLabel filler = new JLabel(string);

       filler.setHorizontalAlignment(JLabel.CENTER);

       panel.add(filler);

       return panel;

    }

 

 

 

    private ImageIcon createImageIcon(String string) {

       URL url = TabbedPaneDemo.class.getResource(string);

       if(url == null)

       {

           System.out.println("the image "+string+" is not exist!");

           return null;

       }

       return new ImageIcon(url);

    }

 

 

 

    public static void createAndShowGUI()

    {

       JFrame frame = new JFrame("table panel test");

       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      

       frame.add(new TabbedPaneDemo());

      

       frame.pack();

       frame.setVisible(true);

      

      

    }

   

    public static void main(String[] args) {

       SwingUtilities.invokeLater(new Runnable() {

          

           @Override

           public void run() {

              createAndShowGUI();

           }

       });

    }

}

执行结果:

http://s10/middle/616e189f496cebf07f319&690之 tab组件(第四章)" TITLE="java界面开发 之 tab组件(第四章)" />

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有