Swing編程概述

來源:互聯網
上載者:User

標籤:

Swing作為AWT組件的“強化版”,它的產生主要是為了克服AWT構建的GUI,無法在所有平台都通用的問題。允許編程人員跨平台時指定統一的GUI顯示風格也是Swing的最大優勢。Swing是AWT的補充,而非取代者。

以下是Swing包的階層和繼承關係。

javax.swingClass JComponent
  • java.lang.Object
    • java.awt.Component
      • java.awt.Container
        • javax.swing.JComponent
  • All Implemented Interfaces:
    ImageObserver, MenuContainer, Serializable
    Direct Known Subclasses:
    AbstractButton, BasicInternalFrameTitlePane, Box, Box.Filler, JColorChooser, JComboBox, JFileChooser, JInternalFrame, JInternalFrame.JDesktopIcon, JLabel, JLayer, JLayeredPane, JList, JMenuBar, JOptionPane,JPanel, JPopupMenu, JProgressBar, JRootPane, JScrollBar, JScrollPane, JSeparator, JSlider, JSpinner, JSplitPane, JTabbedPane, JTable, JTableHeader, JTextComponent, JToolBar, JToolTip, JTree, JViewport
    Swing容器主要有兩種,即Window和panel,window視窗又分成兩種:JFrame(表單)和Jdialog(對話方塊),panel面板又有兩種:JPanel面板和JScrollPane(帶捲軸)的面板。JPanel必須放入到JFrame這樣的頂級容器中使用,可以說JPanel是為了更為精緻的布局。

    視窗的編程實現步驟:
    1、繼承Jframe類(Jdialog類)
    2、執行個體化一個Jframe對象(Jdialog對象),並調用getContentPane()方法將表單轉化成容器;
    3、設定對象的各項參數(表單大小等),設定關閉方式(如果不設定,預設為windows常規關閉方式),完成視窗的實現。

    下面,我們看一個簡單的例子。

    public class Jlayout extends JFrame{
    public void CreateJframe(String title){
    JFrame jf=new JFrame(title);//執行個體化一個表單對象
    Container ct=jf.getContentPane();//將表單轉化成容器
    //JLabel jl=new JLabel("JFrame表單樣本");//
    //jl.setHorizontalAlignment(SwingConstants.CENTER);//設定標籤文字的對齊
    //ct.add(jl);//將標籤添加到容器中
    ct.setBackground(Color.white);//設定背景色
    //ct.setLayout(null);
    jf.setVisible(true);
    jf.setSize(200, 150);//設定大小
    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    JButton bt=new JButton("點我啊");//定義一個按鈕
    bt.setHorizontalAlignment(SwingConstants.CENTER);
    bt.setBounds(10, 10, 100, 21);
    bt.addActionListener(new ActionListener(){//(new ActionLinstener(){
    public void actionPerformed(ActionEvent e){
    new Jd(Jlayout.this).setVisible(true);
    }
    });
    ct.add(bt);
    }

    class Jd extends JDialog{
    public Jd(Jlayout frame){
    super(frame,"對話方塊",true);
    Container ct=getContentPane();
    ct.add(new JLabel("讓你點你就點啊"));
    setBounds(120,120,100,100);
    }
    }

    public static void main(String args[]){
    new Jlayout().CreateJframe("");
    }

    }

Swing編程概述

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.