<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    內蒙古java團隊

    j2se,j2ee開發組
    posts - 139, comments - 212, trackbacks - 0, articles - 65
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    java swing 組件大全(新手快進)

    Posted on 2006-10-27 20:01 帥子 閱讀(8033) 評論(1)  編輯  收藏 所屬分類: j2se技術專區
    import?javax.swing.*;

    import?java.awt.*;
    import?java.awt.event.*;
    import?javax.swing.tree.*;
    import?javax.swing.event.*;
    import?javax.swing.border.*;
    import?javax.swing.table.*;

    /**?
    ?*?Swing?組件測試程序
    ?*?測試Swing所有組件及其相應的事件
    ?*?@author?天翼.李?2003.4.17?晚23:14
    ?*?@link?
    http://www.robochina.org
    ?*?@link?robococde@etang.com
    ?*/
    public?class?SwingTest?extends?JFrame
    {
    ????/**
    ?????*?主模塊,初始化所有子模塊,并設置主框架的相關屬性
    ?????*/
    ????public?SwingTest()
    ????{
    ????????//?初始化所有模塊
    ????????MenuTest?menuTest?=?new?MenuTest();
    ????????LeftPanel?leftPanel?=?new?LeftPanel();
    ????????RightPanel?rightPanel?=?new?RightPanel();
    ????????BottomPanel?bottomPanel?=?new?BottomPanel();
    ????????CenterPanel?centerPanel?=?new?CenterPanel();
    ????????
    ????????//?設置主框架的布局
    ????????Container?c?=?this.getContentPane();
    ????????//?c.setLayout(new?BorderLayout())
    ????????this.setJMenuBar(menuTest);
    ????????
    ????????c.add(leftPanel,BorderLayout.WEST);
    ????????c.add(rightPanel,BorderLayout.EAST);
    ????????c.add(centerPanel,BorderLayout.CENTER);
    ????????c.add(bottomPanel,BorderLayout.SOUTH);
    ????????
    ????????//?利用無名內隱類,增加窗口事件
    ????????this.addWindowListener(new?WindowAdapter()
    ????????????{
    ????????????????public?void?WindowClosing(WindowEvent?e)
    ????????????????{???
    ????????????????????//?釋放資源,退出程序
    ????????????????????dispose();
    ????????????????????System.exit(0);
    ????????????????}
    ????????????});
    ????????????
    ????????
    ????????
    ????????setSize(700,500);
    ????????setTitle("Swing?組件大全簡體版");
    ????????//?隱藏frame的標題欄,此功暫時關閉,以方便使用window事件
    ????????//?setUndecorated(true);
    ????????setLocation(200,150);
    ????????show();????????
    ????}

    ????////////////////////////////////////////////////////////////////////////////
    ????/**
    ?????*?菜單欄處理模塊
    ?????*?JMenuBar?--+
    ?????*????????????--JMenu--+
    ?????*???????????????????????--JMenuItem??--ActionListener?
    ?????*??????????????
    ?????*/
    ????class?MenuTest?extends?JMenuBar
    ????{
    ????????private?JDialog?aboutDialog;
    ????????????
    ????????/**
    ?????????*?菜單初始化操作
    ?????????*/????
    ????????public?MenuTest()
    ????????{
    ????????????JMenu?fileMenu?=?new?JMenu("文件");
    ????????????JMenuItem?exitMenuItem?=?new?JMenuItem("退出",KeyEvent.VK_E);
    ????????????JMenuItem?aboutMenuItem?=?new?JMenuItem("關于...",KeyEvent.VK_A);????????????
    ????????????????????????????????????????????????
    ????????????fileMenu.add(exitMenuItem);
    ????????????fileMenu.add(aboutMenuItem);
    ????????????
    ????????????this.add(fileMenu);????????
    ????????????
    ????????????????????
    ????????????aboutDialog?=?new?JDialog();
    ????????????initAboutDialog();
    ????????????????????????
    ????????????//?菜單事件
    ????????????exitMenuItem.addActionListener(new?ActionListener()
    ????????????{
    ????????????????public?void?actionPerformed(ActionEvent?e)
    ????????????????{
    ????????????????????dispose();
    ????????????????????System.exit(0);
    ????????????????}
    ????????????});
    ????????????
    ????????????aboutMenuItem.addActionListener(new?ActionListener()
    ????????????{
    ????????????????public?void?actionPerformed(ActionEvent?e)
    ????????????????{
    ????????????????????//?"關于"對話框的處理
    ????????????????????aboutDialog.show();
    ????????????????}
    ????????????});????????????
    ????????????????????????
    ????????}
    ????????
    ????????/**
    ?????????*?返回關于對話框
    ?????????*/
    ????????public?JDialog?getAboutDialog()
    ????????{
    ????????????return?aboutDialog;
    ????????}
    ????????
    ????????/**
    ?????????*?設置"關于"對話框的外觀及響應事件,操作和JFrame一樣都是在內容
    ?????????*?框架上進行的
    ?????????*/
    ????????public?void?initAboutDialog()
    ????????{
    ????????????aboutDialog.setTitle("關于");
    ????????????
    ????????????Container?con?=aboutDialog.getContentPane();
    ?????????????
    ????????????//?Swing?中使用html語句
    ????????????Icon?icon?=?new?ImageIcon("smile.gif");
    ????????????JLabel?aboutLabel?=?new?JLabel("<html><b><font?size=5>"+
    ????????????"<center>Swing?組件大全簡體版!"+"<br>天翼.李",icon,JLabel.CENTER);
    ????????????????????????
    ????????????//JLabel?aboutLabel?=?new?JLabel("Swing?組件大全簡體版!",icon,JLabel.CENTER);
    ????????????con.add(aboutLabel,BorderLayout.CENTER);
    ????????????
    ????????????aboutDialog.setSize(450,225);
    ????????????aboutDialog.setLocation(300,300);????????????????????????
    ????????????aboutDialog.addWindowListener(new?WindowAdapter()
    ????????????{
    ????????????????public?void?WindowClosing(WindowEvent?e)
    ????????????????{
    ????????????????????dispose();
    ????????????????}????????????????????
    ????????????});????????????
    ????????}
    ????}
    ????
    ????////////////////////////////////////////////////////////////////////////////
    ????/**
    ?????*?最左邊模塊,繼承JPanel,初始化內容為JTree
    ?????*?JPanel--+
    ?????*?????????--JTree
    ?????*/
    ????class?LeftPanel?extends?JPanel
    ????{
    ????????private?int?i?=?0;
    ????????public?LeftPanel()
    ????????{
    ????????????
    ????????????DefaultMutableTreeNode????root?=?new?DefaultMutableTreeNode("Root");
    ????????????DefaultMutableTreeNode?child?=?new?DefaultMutableTreeNode("Child");
    ????????????DefaultMutableTreeNode?select?=?new?DefaultMutableTreeNode("select");
    ????????????
    ????????????DefaultMutableTreeNode?child1?=?new?DefaultMutableTreeNode(""+i);
    ????????????
    ????????????root.add(child);????????
    ????????????root.add(select);
    ????????????child.add(child1);????
    ????????????
    ????????????JTree?tree?=?new?JTree(root);
    ????????????tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
    ????????????
    ????????????//?每個節點的行高
    ????????????tree.setRowHeight(20);????????????
    ????????????tree.addTreeSelectionListener(new?TreeSelectionListener?()
    ????????????{
    ????????????????public?void?valueChanged(TreeSelectionEvent?e)
    ????????????????{
    ????????????????????//?內隱類不能直接引用外部類tree,1.外部變量可申明為final?2.新建外部類的對象
    ????????????????????JTree?tree?=(JTree)e.getSource();
    ????????????????????DefaultMutableTreeNode?selectNode?=?(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
    ????????????????????i++;
    ????????????????????selectNode.add(new?DefaultMutableTreeNode(""+i));
    ????????????????}
    ????????????});????????????
    ????????????
    ????????????tree.setPreferredSize(new?Dimension(100,300));
    ????????//????tree.setEnabled(true);
    ????????????JScrollPane?scrollPane?=?new?JScrollPane(tree);
    ????????????//scrollPane.setSize(100,350);
    ????????????this.add(scrollPane);
    ????????}
    ????}
    ????
    ????////////////////////////////////////////////////////////////////////////////
    ????/**
    ?????*?最下面層模塊,繼承JPanel,初始化內容為進度條,并由定時器控制
    ?????*?JPanel--+
    ?????*?????????--JProcessBar??--Timer
    ?????*/
    ????class?BottomPanel?extends?JPanel
    ????{
    ????????private?JProgressBar?pb;
    ????????////////////////////////////////////////
    ????????//public?class?
    ????????//////////////////////////////
    ????????public?BottomPanel()
    ????????{
    ????????????pb?=?new?JProgressBar();
    ????????????pb.setPreferredSize(new?Dimension(680,20));
    ????????????
    ????????????//?設置定時器,用來控制進度條的處理
    ????????????Timer?time?=?new?Timer(1,new?ActionListener()
    ????????????{?
    ????????????????int?counter?=?0;
    ????????????????public?void?actionPerformed(ActionEvent?e)
    ????????????????{
    ????????????????????counter++;
    ????????????????????pb.setValue(counter);
    ????????????????????Timer?t?=?(Timer)e.getSource();
    ????????????????????
    ????????????????????//?如果進度條達到最大值重新開發計數
    ????????????????????if?(counter?==?pb.getMaximum())
    ????????????????????{
    ????????????????????????t.stop();
    ????????????????????????counter?=0;
    ????????????????????????t.start();
    ????????????????????}????????????????????
    ????????????????}
    ????????????});
    ????????????time.start();
    ????????????
    ????????????pb.setStringPainted(true);
    ????????????pb.setMinimum(0);
    ????????????pb.setMaximum(1000);
    ????????????pb.setBackground(Color.white);
    ????????????pb.setForeground(Color.red);
    ????????????????????????
    ????????????this.add(pb);????????????????
    ????????}
    ????????
    ????????/**
    ?????????*?設置進度條的數據模型
    ?????????*/
    ????????public?void?setProcessBar(BoundedRangeModel?rangeModel)
    ????????{
    ????????????pb.setModel(rangeModel);
    ????????}
    ????}
    ????
    ????////////////////////////////////////////////////////////////////////////////
    ????/**
    ?????*?最右邊模塊,繼承JPanel,初始化各種按鈕
    ?????*?JPanel--+
    ?????*?????????--JButton??--JToggleButton?--?JList?--?JCombox?--JCheckBox?....
    ?????*/
    ????class?RightPanel?extends?JPanel
    ????{
    ????????public?RightPanel()
    ????????{
    ????????????this.setLayout(new?GridLayout(8,1));????????
    ????????????
    ????????????
    ????????????//?初始化各種按鈕
    ????????????JCheckBox?checkBox?=?new?JCheckBox("復選按鈕");????????????
    ????????????JButton?button?=?new?JButton("打開文件");
    ????????????button.addActionListener(new?ActionListener()
    ????????????{
    ????????????????public?void?actionPerformed(ActionEvent?e)
    ????????????????{
    ????????????????????JFileChooser?file?=?new?JFileChooser();
    ????????????????????int?result?=?file.showOpenDialog(new?JPanel());
    ????????????????????if?(result?==file.APPROVE_OPTION)?
    ????????????????????{
    ????????????????????????String?fileName?=?file.getSelectedFile().getName();????????????????????
    ????????????????????????String?dir?=?file.getCurrentDirectory().toString();
    ??????????????????????????JOptionPane.showConfirmDialog(null,dir+"\\"+fileName,"選擇的文件",JOptionPane.YES_OPTION);
    ?????????????????????}
    ????????????????}
    ????????????});
    ????????????////////////////////////////////////////
    ????????????//public
    ????????????//////////////////////////////////////////
    ????????????????????
    ????????????JToggleButton?toggleButton?=?new?JToggleButton("雙態按鈕");
    ????????????
    ????????????ButtonGroup????buttonGroup?=?new?ButtonGroup();
    ????????????JRadioButton?radioButton1?=?new?JRadioButton("單選按鈕1",false);
    ????????????JRadioButton?radioButton2?=?new?JRadioButton("單選按鈕2",false);
    ????????????
    ????????????//?組合框的處理
    ????????????JComboBox?comboBox?=?new?JComboBox();
    ????????????comboBox.setToolTipText("點擊下拉列表增加選項");
    ????????????comboBox.addActionListener(new?ActionListener()?
    ????????????{
    ????????????????public?void?actionPerformed(ActionEvent?e)
    ????????????????{
    ????????????????????JComboBox?comboBox?=(JComboBox)e.getSource();
    ????????????????????comboBox.addItem("程序員");
    ????????????????????comboBox.addItem("分析員");
    ????????????????}
    ????????????});
    ????????????
    ????????????//?列表框的處理
    ????????????DefaultListModel?litem?=?new?DefaultListModel();
    ????????????litem.addElement("香蕉");
    ????????????litem.addElement("水果");
    ????????????JList?list?=?new?JList(litem);
    ????????????
    ????????????
    ????????????list.addListSelectionListener(new?ListSelectionListener?()
    ????????????{
    ????????????????public?void?valueChanged(ListSelectionEvent?e)
    ????????????????{
    ????????????????????JList?l?=?(JList)e.getSource();
    ????????????????????Object?s=?l.getSelectedValue();
    ????????????????????JOptionPane.showMessageDialog(null,s,"消息框",JOptionPane.YES_OPTION);
    ????????????????}
    ????????????});
    ????????????
    ????????????//?增加按鈕組
    ????????????buttonGroup.add(radioButton1);
    ????????????buttonGroup.add(radioButton2);
    ????????????
    ????????????//?增加各種按鈕到JPanel中顯示
    ????????????add(button);
    ????????????add(toggleButton);
    ????????????add(checkBox);
    ????????????add(radioButton1);????????????
    ????????????add(radioButton2);
    ????????????add(comboBox);
    ????????????
    ????????????add(list);
    ????????????
    ????????????this.setBorder(new?EtchedBorder(EtchedBorder.LOWERED,Color.LIGHT_GRAY,Color.blue));
    ????????}????????
    ????}
    ????
    ????////////////////////////////////////////////////////////////////////////////
    ????/**
    ?????*?中間層模塊,繼承JPanel,初始化頁簽,并在頁簽中設置文本區,表格,
    ?????*?文本區上下用分隔條分隔
    ?????*?JPanel--+
    ?????*?????????-JTabbedPane--+
    ?????*??????????????????????????--Draw????--JTable??-JTextAreas?-JText?--JPopupMenu
    ?????*/
    ????class?CenterPanel?extends?JPanel
    ????{
    ????????public?CenterPanel()
    ????????{
    ????????????JTabbedPane?tab?=?new?JTabbedPane(JTabbedPane.TOP);
    ????????????
    ????????????JTextField?textField?=?new?JTextField("文本域,點擊打開<文件按鈕>可選擇文件");
    ????????????textField.setActionCommand("textField");
    ????????????
    ????????????JTextPane?textPane?=?new?JTextPane();
    ????????????textPane.setCursor(new?Cursor(Cursor.TEXT_CURSOR));
    ????????????textPane.setText("編輯器,試著點擊文本區,試著拉動分隔條。");
    ????????????????????????
    ????????????textPane.addMouseListener(new?MouseAdapter?()?
    ????????????{
    ????????????????public?void?mousePressed?(MouseEvent?e)
    ????????????????{
    ????????????????????JTextPane?textPane?=?(JTextPane)e.getSource();
    ????????????????????textPane.setText("編輯器點擊命令成功");
    ????????????????//????textField.setText(""+textPane.getText());
    ????????????????}
    ????????????});
    ????????????
    ????????????/*
    ????????????UpperCaseDocument?doc?=?new?Document();?
    ????????????textField.setDocumentsetDocument(doc);
    ????????????doc.addDocumentListener(new?DocumentListener()
    ????????????{
    ????????????????public?void?changedUpdate(DocumentEvent?e){}
    ????????????????public?void?removeUpdate(DocumentEvent?e){}
    ????????????????public?void?insertUpdate(DocumentEvent?e)
    ????????????????{
    ????????????????????Document?text?=?(Document)e.getDocument();
    ????????????????????text.setText("復制成功");
    ????????????????}????????????????
    ????????????});
    ????????????*/
    ????????????
    ????????????JSplitPane?splitPane?=?new?JSplitPane(JSplitPane.VERTICAL_SPLIT,textField,textPane);
    ????????????
    ????????????????
    ????????????JTable?table?=?new?JTable(10,10);
    ????????????//table.showHorizontalLines(true);
    ????????????//table.showVerticalLines(true);
    ????????????//table.gridColor(Color.blue);
    ????????????
    ????????????JPanel?pane??=?new?JPanel();
    ????????????pane.add(table.getTableHeader(),BorderLayout.NORTH);
    ????????????pane.add(table);
    ????????????????????????
    ????????????tab.addTab("文本演示",splitPane);
    ????????????//tab.addTab(table.getTableHeader());
    ????????????tab.addTab("表格演示",pane);
    ????????????tab.setPreferredSize(new?Dimension(500,600));
    ????????????this.add(tab);
    ????????????this.setEnabled(true);????????????
    ????????}
    ????}
    ????
    ????
    ????public?static?void?main(String?args[])
    ????{
    ????????//?設置主框架屬性,此處沒有使用,可打開看看效果
    ????????//try
    ????????//{
    ????????//????UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    ????????//}
    ????????//catch??(Exception?e){}
    ????????new?SwingTest();????????????????????????
    ????}
    }



    評論

    # re: java swing 組件大全(新手快進)  回復  更多評論   

    2007-01-05 16:46 by 組件大
    java swing 組件大全
    http://www.rcomponent.com
    主站蜘蛛池模板: 亚洲成A∨人片在线观看无码| 亚洲日韩国产欧美一区二区三区 | 最近免费中文字幕大全| 色偷偷噜噜噜亚洲男人| 永久亚洲成a人片777777| 男女免费观看在线爽爽爽视频| 亚洲AV无码专区在线厂| 911精品国产亚洲日本美国韩国| 在线A级毛片无码免费真人| 国产在线精品观看免费观看| 亚洲综合激情视频| 亚洲欧洲日产国码一级毛片| 免费在线观看h片| 黄色网页在线免费观看| 亚洲人xxx日本人18| 国产亚洲精品精华液| 在线观看免费国产视频| 99re6在线精品视频免费播放| 精品久久亚洲一级α| 78成人精品电影在线播放日韩精品电影一区亚洲 | 大片免费观看92在线视频线视频| 久久亚洲中文字幕精品有坂深雪| 免费欧洲毛片A级视频无风险| 最近2019免费中文字幕6| 无码免费又爽又高潮喷水的视频| 亚洲国产人成在线观看| 日本亚洲视频在线| 亚洲AV之男人的天堂| 成全视频免费高清 | 亚洲精品日韩一区二区小说| 亚洲AV一宅男色影视| www.亚洲精品.com| 大学生a级毛片免费观看| 曰批全过程免费视频网址| 国产A∨免费精品视频| 日本亚洲高清乱码中文在线观看| 亚洲成人福利网站| 亚洲自偷自拍另类12p| 亚洲婷婷五月综合狠狠爱| 亚洲国产中文v高清在线观看| 在线看片人成视频免费无遮挡|