Swing编程概述

Swing作为AWT组件的“强化版”,它的产生主要是为了克服AWT构建的GUI,无法在所有平台都通用的问题。允许编程人员跨平台时指定统一的GUI显示风格也是Swing的最大优势。Swing是AWT的补充,而非取代者。

以下是Swing包的层次结构和继承关系。

javax.swing

Class JComponent

  • All Implemented Interfaces:
    ImageObserverMenuContainerSerializable
    Direct Known Subclasses:
    AbstractButtonBasicInternalFrameTitlePaneBoxBox.FillerJColorChooserJComboBoxJFileChooserJInternalFrameJInternalFrame.JDesktopIconJLabelJLayerJLayeredPaneJListJMenuBarJOptionPane,JPanelJPopupMenuJProgressBarJRootPaneJScrollBarJScrollPaneJSeparatorJSliderJSpinnerJSplitPaneJTabbedPaneJTableJTableHeaderJTextComponentJToolBarJToolTipJTreeJViewport
    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("");
    }

    }


原文地址:https://www.cnblogs.com/qcxdoit/p/5443208.html