swing_swingx - CSDN
swing 订阅
Swing是一个用于开发Java应用程序用户界面的开发工具包。以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event。 展开全文
Swing是一个用于开发Java应用程序用户界面的开发工具包。以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event。
信息
基    础
抽象窗口工具包(AWT)
示    例
avax.swing,javax.swing.event
特    点
丰富、灵活的功能和模块化组件
中文名
Swing
功    能
开发Java应用程序用户界面
性    质
开发工具包
Swing步骤
(1)导入Swing包 Swing 可定制图形界面(6张) (2)选择界面风格(3)设置顶层容器(4)设置按钮和标签(5)将组件放到容器上(6)为组件增加边框(7)处理事件(8)辅助技术支持下面语句导入Swing包import javax.swing.*;大部分Swing程序用到了AWT的基础底层结构和事件模型,因此需要导入两个包:import java.awt.*;import java.awt.event.*;如果图形界面中包括了事件处理,那么还需要导入事件处理包:import javax.swing.event.*;Swing允许选择程序的图形界面风格常用的有java风格,windows风格等下面的代码用于选择图形界面风格,这里选择的是跨平台的Java界面风格。try { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName( )); }catch (Exception e) { }图形界面至少要有一个顶级Swing容器顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供支持常用的顶级容器:JFrame(框架):表示主程序窗口JDialog(对话框):每个JDialog对象表示一个对话框,对话框属于二级窗口JApplet(小程序):在浏览器内显示一个小程序界面一个框架包括边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格窗格也可以看作是一种面板,但它是框架的一个组成部分组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上用框架对象的getContentPane()函数来获得窗格,再调用窗格的add()函数放置面板public static void main(String[ ]args){JFrame frame=new JFrame("SwingApplication");JPanel panel1=new JPanel();frame.getContentPane().add(panel1,BorderLayout.CENTER);......//frame.pack();frame.setVisible(true);}
收起全文
精华内容
参与话题
  • Java学习指南(Swing入门篇)

    千人学习 2019-08-19 09:54:36
    Swing系列教程分为两篇:(1) Swing入门篇 (2) Swing高级篇。 通过本篇的训练,学员可以较容易的掌握Java的主要语法,对常用的API都有很好的掌握。 本篇内容至少包含: - 基本控件的使用 - 布局管理器的使用 ...
  • Java Swing 图形界面开发(目录)

    万次阅读 多人点赞 2020-08-13 17:40:37
    Java Swing 图形界面(GUI)开发基础教程(目录)

    本文链接: https://blog.csdn.net/xietansheng/article/details/72814492

    0. JavaSwing 简介

    1. JavaSwing 布局管理器

    2. JavaSwing 基本组件

    3. JavaSwing 面板组件

    4. JavaSwing 其他组件

    5. JavaSwing 相关特性

    扩展:Java AWT/Swing 其他相关


    展开全文
  • Java_Swing(一)——Swing介绍

    万次阅读 2019-06-03 23:49:27
    Swing组件的出现是为了解决AWT组件的移植性问题,同时提供更多的企业级应用程序所需要的界面功能,Swing组件中的类主要包含在javax.swing包中,JDK1.2以后的版本都包含Swing类库。 与AWT组件不同,javax.swing包中...

    Swing 是一个为Java设计的GUI工具包,是新一代的图形界面工具。Swing组件的出现是为了解决AWT组件的移植性问题,同时提供更多的企业级应用程序所需要的界面功能,Swing组件中的类主要包含在javax.swing包中,JDK1.2以后的版本都包含Swing类库。

    与AWT组件不同,javax.swing包中的大部分组件是没有同位体的组件,所以简称为轻组件。(AWT组件中的类创建组件时,都有一个相应的本地组件在为它工作,称为它的同位体。AWT组件的设计原理是把显示组件和处理组件事件的工作交给同位体,因此AWT组件通常被称作重量组件。)轻组件在设计上把显示组件和处理组件事件的工作交给相应的UI代理来完成,UI代理是用java语言编写的类,系统运行时,这些类被加载到Java的运行环境中,使得组件的外观不依赖于平台,所以可以在所有平台上保持相同的运行效果,对跨平台支持比较出色。因此与重量组件相比,具有更高的性能。(注意:如果Java编程环境或Java运行环境低于JDK1.2版本,就不能使用Swing组件或运行含有Swing组件的程序。)

    Swing组件的层次关系图:

    从图中可以明显看出,Swing组件都是AWT组件Container类的直接子类和间接子类,Java把由Container的子类或间接子类创建的对象称为一个容器。容器是用来组织其他界面成分和元素的单元,一个应用程序的图形用户界面首先对应于一个复杂的容器,这个容器将再进一步包含它的界面成分和元素,以此类推就构成了一个复杂的图形用户界面系统。图形用户界面中的界面成分或元素又称为组件(Component),组件是一个按照一定规范编写的特殊的类,它有自己特定的功能并可作为一个单独的部分添加到程序中。容器本身也是一个组件,因此可以把一个容器添加到另一个容器中实现容器的嵌套,Java中的Swing组件既可以作为组件也可以作为容器来使用。

    javax.swing包中包含近100个类和25个接口,几乎所有的Swing组件都在javax.swing包中,只有JTableHeader和JTextComponent是例外,分别在swing.table和swing.text中。

    展开全文
  • Java学习指南(Swing高级篇)

    千人学习 2019-08-19 09:55:10
    Swing系列教程分为两篇:(1) Swing入门篇 (2) Swing高级篇。 本篇内容至少包含: - 高级绘制技术,包含线型、渐变色、文本的精确绘制 - 不规则形状及图表的绘制 - 工作线程与界面线程的原理 - 短任务、长任务...
  • Swing实现登录页面

    万次阅读 2018-06-26 22:55:52
    Swing实现登录页面,输入用户名和密码正确之后,点击确定按钮可以显示登录成功,输入错误会显示错误,点击重置按钮会将将用户名和... import java.awt.*; import java.awt.event.*; import javax.swing.*; public ...

    Swing实现登录页面,输入用户名和密码正确之后,点击确定按钮可以显示登录成功,输入错误会显示错误,点击重置按钮会将将用户名和密码清零。


    输入用户名和密码正确之后:


    输入用户名和密码错误之后:


    点击重置按钮之后:


    源代码:

    package Homeword;
    
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class three extends JFrame{
    
    	private static final long serialVersionUID = 1L;
    
    	public three(){
    		
    		setVisible(true);
    		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    		
    		//设置顶部提示文字和主窗体的宽,高,x值,y值
    		setTitle("登录窗体");
    		setBounds(300, 200, 300, 150);
    		Container cp=getContentPane();	//添加一个cp容器
    		cp.setLayout(null);	//设置添加的cp容器为流布局管理器
    		
    		//设置左侧用户名文字
    		JLabel jl=new JLabel("用户名:");
    		jl.setBounds(10, 10, 200, 18);
    		final JTextField name=new JTextField();	//用户名框
    		name.setBounds(80, 10, 150, 18);	//设置用户名框的宽,高,x值,y值
    		
    		//设置左侧密码文字
    		JLabel jl2=new JLabel("密码:");
    		jl2.setBounds(10, 50, 200, 18);
    		final JPasswordField password=new JPasswordField();	//密码框:为加密的***
    		password.setBounds(80, 50, 150, 18);	//设置密码框的宽,高,x值,y值
    		
    		//将jl、name、jl2、password添加到容器cp中
    		cp.add(jl);
    		cp.add(name);
    		cp.add(jl2);
    		cp.add(password);
    		
    		//确定按钮
    		JButton jb=new JButton("确定");	//添加一个确定按钮
    		jb.addActionListener(new ActionListener(){		//为确定按钮添加监听事件
    			
    			public void actionPerformed(ActionEvent arg0) {
    				
    				if(name.getText().trim().length()==0||new String(password.getPassword()).trim().length()==0){
    					JOptionPane.showMessageDialog(null, "用户名密码不允许为空");
    					return;
    				}
    				if(name.getText().trim().equals("lzp")&&new String(password.getPassword()).trim().equals("123456")){
    					JOptionPane.showMessageDialog(null, "登录成功");
    				}
    				else{
    					JOptionPane.showMessageDialog(null, "用户名或密码错误");
    				}
    			}
    		});
    		jb.setBounds(80, 80, 60, 18);	//设置确定按钮的宽,高,x值,y值
    		cp.add(jb);	//将确定按钮添加到cp容器中
    		
    		//重置按钮
    		final JButton button = new JButton();
    		button.setText("重置");
    		button.addActionListener(new ActionListener(){		//为重置按钮添加监听事件
    			//同时清空name、password的数据
    			public void actionPerformed(ActionEvent arg0) {
    				// TODO 自动生成方法存根
    				name.setText("");
    				password.setText("");
    			}
    		});
    		button.setBounds(150, 80, 60, 18);	//设置重置按钮的宽,高,x值,y值
    		getContentPane().add(button);
    	}
    	
    	//main方法入口
    	public static void main(String[] args) {
    		new three();	//调用three()
    
    	}
    
    }
    

    展开全文
  • java swing 例子(一些)

    千次阅读 2020-03-11 14:07:29
    package swing1; import javax.swing.JFrame; import javax.swing.WindowConstants; public class EmptyJFrame extends JFrame{ public static void main(String[] args) { //现在创建了

    码码;

     

    package swing1;
    
    import javax.swing.JFrame;  
    import javax.swing.WindowConstants;  
      
    public class EmptyJFrame extends JFrame{  
      
        public static void main(String[] args) {  
            //现在创建了一个对象,不过什么都显示不出来  
            EmptyJFrame f = new EmptyJFrame();  
            //加上这一句就可以显示一个仅有关闭,最小化,最大化的按钮的Frame了  
            f.setVisible(true);  
            //再加上这一句就可以显示一个在左上角,拥有指定大小的Frame了  
            f.setSize(300,200);  
            //再加上这一句就可以把Frame放在最中间了  
            f.setLocationRelativeTo(null);  
            //如果没有这一句,在点击关闭Frame的时候程序其实还是在执行状态中的,加上这一句才算是真正的把资源释放掉了  
            f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);  
        }  
    } 

     

    package swing1;
    
    import javax.swing.JFrame;  
    import javax.swing.SwingUtilities;  
    import javax.swing.WindowConstants;  
      
    public class EmptyJFrame2 extends JFrame{  
        EmptyJFrame2(){  
            initGUI();  
        }  
        private void initGUI(){  
            setVisible(true);  
            setSize(300,200);  
            setLocationRelativeTo(null);  
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);  
        }  
        public static void main(String[] args) {  
            SwingUtilities.invokeLater(new Runnable() {  
                public void run() {  
                    EmptyJFrame2 f = new EmptyJFrame2();  
                }                 
            });  
        }  
    } 

     

     

    图图;

     

    码码;

     

    package swing1;
    
    import javax.swing.JButton;  
    import javax.swing.JFrame;  
    import javax.swing.SwingUtilities;  
    import javax.swing.WindowConstants;  
      
    public class AddComponent extends JFrame{  
        public AddComponent(){  
            initGUI();  
        }  
        private void initGUI(){  
            setVisible(true);  
            setSize(300,200);  
            setLocationRelativeTo(null);  
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);  
              
            //创建元件  
            JButton jButton1 = new JButton("jButton1");  
            //添加元件  
            add(jButton1);  
        }  
        public static void main(String[] args) {  
            SwingUtilities.invokeLater(new Runnable() {  
                public void run() {  
                    AddComponent f = new AddComponent();  
                }                 
            });  
        }  
    }  

     

    package swing1;
    
    import javax.swing.JButton;  
    import javax.swing.JFrame;  
    import javax.swing.SwingUtilities;  
    import javax.swing.WindowConstants;  
      
    public class AddComponent2 extends JFrame{  
        //定义变量  
        private JButton jButton1;  
        public AddComponent2(){  
            initGUI();  
            addComp();  
        }  
        private void addComp(){  
            //初始化  
            jButton1 = new JButton("jButton1");  
            //添加元件  
            add(jButton1);  
        }  
        private void initGUI(){  
            setVisible(true);  
            setSize(300,400);  
            setLocationRelativeTo(null);  
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);  
        }  
        public static void main(String[] args) {  
            SwingUtilities.invokeLater(new Runnable() {  
                public void run() {  
                    AddComponent2 f = new AddComponent2();  
                }                 
            });  
        }  
    } 

     

     

    图图;

     

    码码;

     

    package swing1;
    
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.event.*;
    import java.awt.*;
    /**
     * swing基础实例
     * @author HZ20232
     *
     */
    public class Hello{
        public static void main(String args[])throws Exception{
            NewFrame frame1 = new NewFrame();
            frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//一定要设置关闭
    
            frame1.setVisible(true);
        }
    }
    class NewFrame extends JFrame{
        private JLabel label1;
        private JButton button1;
        private JTextField text1;
        private JComboBox box;
        private JMenuBar menuBar;
        private JSlider slider;
        private JSpinner spinner;
        private JToolBar toolBar;
        
        public NewFrame(){
            super();
            this.setSize(300,500);
            this.getContentPane().setLayout(null);//设置布局控制器
    
    //        this.getContentPane().setLayout(new FlowLayout());//设置布局控制器
    
    //        this.getContentPane().setLayout(new GridLayout(1,2));//设置布局控制器,需要给出设定的行列数目
    
    //        this.getContentPane().setLayout(new BorderLayout());//设置布局控制器,以North,South,West,East,来控制控件布局
    
    //        this.getContentPane().setLayout(new GridBagLayout());//设置布局控制器
    
            this.add(this.getTextField(),null);//添加文本框
    
            this.add(this.getButton(),null);//添加按钮
    
            this.add(this.getLabel(),null);//添加标签
    
            this.add(this.getBox(),null);//添加下拉列表框
    
            this.setJMenuBar(this.getMenu());//添加菜单
    
            this.add(this.getSlider(),null);
            this.add(this.getSpinner(),null);
            this.add(this.getToolBar(),null);
            this.setTitle("Hello World!");//设置窗口标题
    
        }
        private JToolBar getToolBar(){
            if(toolBar==null){
                toolBar = new JToolBar();
                toolBar.setBounds(103,260,71,20);
                toolBar.setFloatable(true);
            }
            return toolBar;
        }
        private JSpinner getSpinner(){
            if(spinner==null){
                spinner = new JSpinner();
                spinner.setBounds(103,220, 80,20);
                spinner.setValue(100);
            }
            return spinner;
        }
        private JSlider getSlider(){
            if(slider==null){
                slider = new JSlider();
                slider.setBounds(103,200,100, 20);
                slider.setMaximum(100);
                slider.setMinimum(0);
                slider.setOrientation(0);
                slider.setValue(0);
            }
            return slider;
        }
        /**
         * 菜单的级别JMenuBar->JMenu->JMenuItem
         * 三级都是1:n的关系
         * 最后添加菜单用的SetJMenuBar方法
         * @return 建立好的菜单
         */
        private JMenuBar getMenu(){
            if(menuBar==null){
                menuBar = new JMenuBar();
                JMenu m1 = new JMenu();
                m1.setText("文件");
                JMenu m2 = new JMenu();
                m2.setText("编辑");
                JMenu m3 = new JMenu();
                m3.setText("帮助");
                
                JMenuItem item11 = new JMenuItem();
                item11.setText("打开");
                JMenuItem item12 = new JMenuItem();
                item12.setText("保存");
                JMenuItem item13 = new JMenuItem();
                item13.setText("退出");
                
                JMenuItem item21 = new JMenuItem();
                item21.setText("复制");
                JMenuItem item22 = new JMenuItem();
                item22.setText("拷贝");
                JMenuItem item23 = new JMenuItem();
                item23.setText("剪切");
                
                JMenuItem item31 = new JMenuItem();
                item31.setText("欢迎");
                JMenuItem item32 = new JMenuItem();
                item32.setText("搜索");
                JMenuItem item33 = new JMenuItem();
                item33.setText("版本信息");
                
                m1.add(item11);
                m1.add(item12);
                m1.add(item13);
                
                m2.add(item21);
                m2.add(item22);
                m2.add(item23);
                
                m3.add(item31);
                m3.add(item32);
                m3.add(item33);
                
                menuBar.add(m1);
                menuBar.add(m2);
                menuBar.add(m3);
            }
            return menuBar;
        }
        /**
         * 设置下拉列表框
         * @return
         */
        private JComboBox getBox(){
            if(box==null){
                box = new JComboBox();
                box.setBounds(103,140,71,27);
                box.addItem("1");
                box.addItem("2");
                box.addActionListener(new comboxListener());//为下拉列表框添加监听器类
    
            }
            return box;
        }
        private class comboxListener implements ActionListener{
            public void actionPerformed(ActionEvent e){
                Object o = e.getSource();
                System.out.println(o.toString());
            }
        }
        /**
         * 设置标签
         * @return 设置好的标签
         */
        private JLabel getLabel(){
            if(label1==null){
                label1 = new JLabel();
                label1.setBounds(34,49,53,18);
                label1.setText("Name");
                label1.setToolTipText("JLabel");
            }
            return label1;
        }
        /**
         * 设置按钮
         * @return 设置好的按钮
         */
        private JButton getButton(){
            if(button1==null){
                button1 = new JButton();
                button1.setBounds(103,110,71,27);
                button1.setText("OK");
                button1.setToolTipText("OK");
                button1.addActionListener(new HelloButton());//添加监听器类,其主要的响应都由监听器类的方法实现
    
            }
            return button1;
        }
        /**
         * 监听器类实现ActionListener接口,主要实现actionPerformed方法
         * @author HZ20232
         *
         */
        private class HelloButton implements ActionListener{
            public void actionPerformed(ActionEvent e){
                System.out.println("Hello world!");
            }
        }
        /**
         * 设定文本域
         * @return
         */
        private JTextField getTextField(){
            if(text1==null){
                text1 = new JTextField();
                text1.setBounds(96,49,160,20);
            }
            return text1;
        }
    }

     

     

    图图;

     

    码码;

     

    package swing1;
    
    import java.awt.BorderLayout; 
    import java.awt.Color; 
    import java.awt.Container; 
    import java.awt.Cursor; 
    import java.awt.Dimension; 
    import java.awt.GridLayout; 
    import java.awt.event.ActionEvent; 
    import java.awt.event.ActionListener; 
    import java.awt.event.KeyEvent; 
    import java.awt.event.MouseAdapter; 
    import java.awt.event.MouseEvent; 
    import java.awt.event.WindowAdapter; 
    import java.awt.event.WindowEvent; 
    
    import javax.swing.BoundedRangeModel; 
    import javax.swing.ButtonGroup; 
    import javax.swing.DefaultListModel; 
    import javax.swing.Icon; 
    import javax.swing.ImageIcon; 
    import javax.swing.JButton; 
    import javax.swing.JCheckBox; 
    import javax.swing.JComboBox; 
    import javax.swing.JDialog; 
    import javax.swing.JFileChooser; 
    import javax.swing.JFrame; 
    import javax.swing.JLabel; 
    import javax.swing.JList; 
    import javax.swing.JMenu; 
    import javax.swing.JMenuBar; 
    import javax.swing.JMenuItem; 
    import javax.swing.JOptionPane; 
    import javax.swing.JPanel; 
    import javax.swing.JProgressBar; 
    import javax.swing.JRadioButton; 
    import javax.swing.JScrollPane; 
    import javax.swing.JSplitPane; 
    import javax.swing.JTabbedPane; 
    import javax.swing.JTable; 
    import javax.swing.JTextField; 
    import javax.swing.JTextPane; 
    import javax.swing.JToggleButton; 
    import javax.swing.JTree; 
    import javax.swing.Timer; 
    import javax.swing.border.EtchedBorder; 
    import javax.swing.event.ListSelectionEvent; 
    import javax.swing.event.ListSelectionListener; 
    import javax.swing.event.TreeSelectionEvent; 
    import javax.swing.event.TreeSelectionListener; 
    import javax.swing.tree.DefaultMutableTreeNode; 
    import javax.swing.tree.TreeSelectionModel; 
    
    public class Test extends JFrame{ 
    
    public Test(){ 
    
       MenuTest menuTest=new MenuTest(); 
    
       LeftPanel leftPanel=new LeftPanel(); 
    
       RightPanel rightPanel=new RightPanel(); 
    
       BottomPanel bottomPanel=new BottomPanel(); 
    
       CenterPanel centerPanel=new CenterPanel(); 
    
       Container c=this.getContentPane(); 
    
       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 组件大全简体版"); 
    
       setUndecorated(true); 
    
       setLocation(200,150); 
    
       show();  
    
    } 
    
    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 get(){ 
    
       return aboutDialog; 
    
    } 
    
    public void initAboutDialog(){ 
    
       aboutDialog.setTitle("关于"); 
    
       Container con=aboutDialog.getContentPane(); 
    
       Icon icon=new ImageIcon("sdmile.gif"); 
    
       JLabel aboutLabel=new JLabel("<html><b><font size=5>"+"<center>Swing!"+"<br>",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(); 
    
        } 
    
       }); 
    
      
    
    } 
    
    } 
    
    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){ 
    
          JTree tree=(JTree)e.getSource(); 
    
          DefaultMutableTreeNode selectNode=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); 
    
          i++; 
    
          selectNode.add(new DefaultMutableTreeNode(""+i)); 
    
         } 
    
        }); 
    
        tree.setPreferredSize(new Dimension(100,300)); 
    
        JScrollPane scrollPane=new JScrollPane(tree); 
    
        this.add(scrollPane); 
    
        
    
        } 
    
       
    
       } 
    
    class BottomPanel extends JPanel{ 
    
       private JProgressBar pb; 
    
       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); 
    
       } 
    
    } 
    
    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 resule=file.showOpenDialog(new JPanel()); 
    
          if(resule==file.APPROVE_OPTION){ 
    
           String fileName=file.getSelectedFile().getName(); 
    
           String dir=file.getSelectedFile().getName(); 
    
           JOptionPane.showConfirmDialog(null,dir+"\\"+fileName,"选择的文件",JOptionPane.YES_OPTION); 
    
          } 
    
         } 
    
        }); 
    
        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); 
    
        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)); 
    
       } 
    
    } 
    
    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("编辑器点击命令成功"); 
    
         } 
    
        }); 
    
        JSplitPane splitPane=new JSplitPane(JSplitPane.VERTICAL_SPLIT,textField,textPane); 
    
        JTable table=new JTable(10,10); 
    
        JPanel pane=new JPanel(); 
    
        pane.add(table.getTableHeader(),BorderLayout.NORTH); 
    
        pane.add(table); 
    
        tab.addTab("文本演示",splitPane); 
    
        tab.addTab("表格演示", pane); 
    
        tab.setPreferredSize(new Dimension(500,600)); 
    
        this.add(tab); 
    
        this.setEnabled(true); 
    
       } 
    
    } 
    
    public static void main(String args[]){ 
    
       new Test(); 
    
    } 
    
    } 


    图图;

     

     

    展开全文
  • Swing的介绍

    千次阅读 2017-11-24 16:21:28
    Swing是一个为java设计的GUI工具包.Swing是JAVA基础类的一部分.Swing包括了图形用户界面(GUI)器件如 : 文本框,按钮,分隔窗格和表.Swing提供许多比AWT更好的屏幕显示元素.它们用纯Java写成,所以同Java本身一样可以跨...
  • Java-Swing编程介绍

    万次阅读 多人点赞 2018-04-22 17:15:50
    总体介绍 组件(控件)和容器 组件(控件) 容器 布局管理 第一个窗口程序 布局管理BorderLayout和FlowLayout介绍 学习layout的小技巧 控件JButton和JTextField介绍 JButton介绍 不新建类来实现...Sw...
  • Swing 使用方法

    千次阅读 2018-04-12 22:45:14
    直接上程序import java.awt.Button;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import javax.swing.JButton;import javax.swing.JFrame;...import javax.swing.JPas...
  • webswing 将Swing工程Web化工具

    千次阅读 2018-03-27 15:11:56
    http://webswing.org/2.4/dev/development/下载地址:http://www.webswing.org/Quick Start GuideThis step by step guide will help you install and start Webswing server and setup your swing application in 5...
  • Java订餐系统(JAVA SWING

    万次阅读 多人点赞 2018-08-27 00:05:28
    一、 开发技术 JDK:JDK1.8,JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。...
  • Java Swing 图形界面开发简介

    万次阅读 多人点赞 2019-01-14 15:52:58
    Java Swing GUI 图形界面窗口开发基础教程,本教程将系统性地详细介绍 Swing 开发中常用的一些组件、布局管理器等相关知识技术,并且每章节都将通过代码实例展示实际应用。Swing 是 Java 为图形界面应用开发提供的...
  • Java swing组件介绍

    万次阅读 多人点赞 2018-07-29 14:58:47
    本文链接: ... Java Swing 图形界面开发(目录) 1. Swing简介 Swing 是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分。 Swing 包含了构建图...
  • JavaSwing_4.8: JTable(表格)

    万次阅读 多人点赞 2019-06-29 10:12:15
    Java Swing 图形界面开发(目录) 1. 概述 官方JavaDocsApi: javax.swing.JTable JTable,表格。JTable 是用来显示和编辑常规二维单元表。 2. 创建简单的表格 package com.xiets...
  • javaSwing教程

    万次阅读 2012-04-13 13:49:07
    swing入门教程 UI 组件简介 在开始学习 Swing 之前,必须回答针对真正初学者的一个问题:什么是 UI?初学者的答案是“用户界面”。但是因为本教程的目标是要保证您不再只是个初学者,所以我们需要比这个定义更高级...
  • Swing组件

    千次阅读 2008-08-07 11:43:00
    11.2 Swing组件(Components)Swing是AWT的扩展,它提供了许多新的图形界面组件。Swing组件以“J”开头,除了拥有与AWT类似的按钮(JButton)、标签(JLabel)、复选框(JCheckBox)、菜单(JMenu)等基本组件外,还...
  • 怎么用swing绘图

    千次阅读 2009-02-18 16:18:00
    绘画系统的演变当最初的、为JDK1.0使用的AWT API发布时,只有重量级(heavyweight)部件("重量级" 的意思是说该部件有它自己的、遮光(opaque)的、与生俱来的窗体)。这样就使得AWT在很大程度上依赖于本地平台的绘画系统...
  • Swing框架之Component

    千次阅读 2012-07-13 13:45:54
    Component在Swing的MVC模型中担任Controller的角色,同时它也是SwingAPI中代表具体组件的对象。Component在Swing中对外负责提供API接口,对内负责协调控制Model和UIDelegate(有时可能还包括Renderer)的操作,可以...
  • 调试和测试 Swing 代码

    千次阅读 2010-04-01 21:47:00
    Alex 是 FEST 的创建者,FEST 是一种创新的 Java 库,主要用于简化 Swing 和 JavaFX 测试以及综合测试。他在 Oracle 开发工具机构担任软件工程师。在进入 Oracle 之前,Alex 曾是 ThoughtWorks 的一
  • intellij idea Swing GUI

    万次阅读 2017-10-19 13:49:09
    Swing是一个用于开发Java应用程序用户界面的开发工具包。 以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件...
1 2 3 4 5 ... 20
收藏数 142,802
精华内容 57,120
关键字:

swing