精华内容
参与话题
问答
  • JAVA GUI

    2016-09-11 23:27:06
  • JavaGUI

    千次阅读 2013-06-29 11:08:37
    JavaGUI提供的对象都存在java.awt和javax.swing。 java.awt:Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能。属于重量级控件。由这个包开发的软件,在不同系统呈现的外

    GUI--Graphical User Interface(图形用户接口)
    CLI--Command Line Interface(命令行用户接口)
    Java为GUI提供的对象都存在java.awt和javax.swing。
    java.awt:Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能。属于重量级控件。由这个包开发的软件,在不同系统呈现的外观有所不同。
    java.swing:在awt的基础上,建立了一套图形界面系统,其中提供了更多的组件,而且完全由java实现,增强了移植性,属轻量级控件。由这个包开发的软件,在任何系统呈现的外观都一样。
    eclipse工具本身是纯java编写的,它使用的是swt外观包,这个外观包也是基于awt的,这是eclipse开发小组自己做的外观包,可以去eclipse官网下载。

    常用GUI组件继承关系图:其中比较特殊的是Container,是一个可包含其他 AWT 组件的组件。


    布局管理器:

    事件监听机制:
    1,事件源-----就是awt包或swing包中的那些图形界面组件。
    2,事件-----每一个事件源都有自己特有的对应事件和共性事件。
    3,监听器-----将可以触发的某一个事件的动作(不止一个动作)都已经封装到了监听器中。
    4,事件处理-----以上三者,在java中都已经定义好了。直接获取其对象来用就可以了。我们要做的事情就是对产生的动作进行处理。

    事件监听机制流程图:

    一,窗体事件--使窗体的关闭按钮起作用

    package GUI;
    
    import java.awt.Button;
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    /**
     * 窗体事件的运用--addWindowListener(WindowAdapter w)
     */
    public class AwtDemo {
    
    	/**
    	 * 创建图形化界面基本步骤:
    	 * 1,创建frame窗体
    	 * 2,对窗体进行基本设置
    	 *    比如,大小、颜色、位置、布局等
    	 * 3,定义组件,
    	 * 4,将组件通过窗体的add方法添加到窗体中
    	 * 5,通过setVisible(true)让窗体显示
    	 */
    	public static void main(String[] args) {
    		//Frame默认是边界布局管理器
    		Frame f = new Frame("my awt");
    		f.setSize(500, 400);//设置大小
    		f.setLocation(300, 100);
    		f.setLayout(new FlowLayout());
    		
    		Button b = new Button("我是一个按钮");
    		f.add(b);
    		
    		//addWindowListener方法的参数是一个WindowListener接口,
    		//因为WindowListener的子类WindowAdapter已经实现了WindowListener接口,
    		//并覆盖了其中的所有方法,那么我们只要继承自WindowAdapter,覆盖自己需要的方法即可。
    		f.addWindowListener(new WindowAdapter(){
    			public void windowClosing(WindowEvent e){
    				System.exit(0);
    			}
    			@Override
    			public void windowOpened(WindowEvent e) {
    				System.out.println("windowOpened");
    			}
    			@Override
    			public void windowActivated(WindowEvent e) {
    				System.out.println("windowActivated");
    			}
    		});
    		
    		f.setVisible(true);//必须调用setVisible方法使显示
    		
    
    	}
    
    }
    

     

     

    二,Action事件

    package GUI;
    
    import java.awt.Button;
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    /**
     * Action事件--addActionListener(ActionListener a)
     * 只有一个方法需要实现,没有对应的适配器,这是比较特殊的一点。大部分Listener都有对应的是适配器,只要接口里的方法超过3个的都有对应的是适配器。
     */
    public class FrameDemo {
    	private  Frame f;
    	private Button b;
    	FrameDemo(){
    		init();
    	}
    	public void init(){
    		f=new Frame("My frame");
    		f.setBounds(300, 200, 500, 400);
    		f.setLayout(new FlowLayout());
    		//将组件添加到frame中
    		b=new Button("My button");
    		
    		f.add(b);
    		//加载窗体上事件
    		myEvent();
    		//显示窗体
    		f.setVisible(true);
    	}
    
    	private void myEvent(){
    		f.addWindowListener(new WindowAdapter(){
    			@Override
    			public void windowClosing(WindowEvent e) {
    				System.exit(0);
    			}
    		});
    		//让按钮具备退出程序的功能
    		/**
    		 * 按钮就是事件源,那么选择哪个监听器呢?
    		 * 通过关闭窗体示例了解到,想要知道哪个组件具备什么样的特有监听器,
    		 * 需要查看该组件对象的功能。
    		 * 通过查阅API中button的描述,发现按钮支持一个特有监听addActionListener(ActionListener e)
    		 * 
    		 * 注意:ActionListener是一个接口,并且没有对应的适配器,
    		 *      大部分Listener都有对应的是适配器,只要接口里的方法超过3个的都有对应的是适配器
    		 */
    		b.addActionListener(new ActionListener(){
    
    			public void actionPerformed(ActionEvent e) {
    				System.out.println("按钮退出");
    				System.exit(0);
    			}
    			
    		});
    	}
    	public static void main(String[] args) {
    		new FrameDemo();
    
    	}
    
    }
    


    三,鼠标事件,键盘事件

    实现按ESC键退出,按组合键CTRL+ENTER退出,双击鼠标操作的代码。

    package GUI;
    
    import java.awt.*;
    import java.awt.event.*;
    //鼠标事件,键盘事件
    public class MouseAndKeyEvent {
    
    	private  Frame f;
    	private Button b;
    	private TextField tf;
    	MouseAndKeyEvent(){
    		init();
    	}
    	public void init(){
    		f=new Frame("My frame");
    		f.setBounds(300, 200, 500, 400);
    		f.setLayout(new FlowLayout());
    		//将组件添加到frame中
    		b=new Button("My button");
    		tf = new TextField(10);//10列的文本框
    
    		f.add(tf);
    		f.add(b);
    		//加载窗体上事件
    		myEvent();
    		//显示窗体
    		f.setVisible(true);
    	}
    
    	private void myEvent(){
    		//窗体事件
    		f.addWindowListener(new WindowAdapter(){
    			@Override
    			public void windowClosing(WindowEvent e) {
    				System.exit(0);
    			}
    		});
    		//鼠标事件
    		b.addMouseListener(new MouseAdapter(){
    			private int count=1;
    			private int clickcount = 1;
    			@Override
    			public void mouseEntered(MouseEvent e) {
    				System.out.println("鼠标进入该组件:"+ count++);
    			}
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				//双击鼠标
    				if(e.getClickCount()==2){
    					System.out.println("鼠标双击:"+ clickcount++);
    				}
    			}
    		});
    		//按钮上加事件最好加ActionEvent
    		b.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent e) {
    				System.out.println("活动");
    			}
    		});
    		//键盘事件
    		b.addKeyListener(new KeyAdapter(){
    			@Override
    			public void keyPressed(KeyEvent e) {
    				System.out.println(e.getKeyCode()+"..."+e.getKeyText(e.getKeyCode()));
    				//按ESC键退出
    				if(e.getKeyCode()==KeyEvent.VK_ESCAPE){
    					System.exit(0);
    				}
    				//按组合键CTRL+ENTER退出
    				if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER){
    					System.exit(0);
    				}
    			}
    		});
    		tf.addKeyListener(new KeyAdapter(){
    			@Override
    			public void keyPressed(KeyEvent e) {//注意这里如果是keyReleaseed事件的话,那么e.consume()是不管用的
    				int code = e.getKeyCode();
    				if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9)){
    					System.out.println(code+"非法");
    					e.consume();//这行代码保证非法字符不会写入文本框
    				}
    			}
    /*			@Override
    			public void keyReleased(KeyEvent e) {//如果是keyReleased事件的话,写了e.consume(),非法字符也会输入到文本框
    				int code = e.getKeyCode();
    				if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9)){
    					System.out.println(code+"非法");
    					e.consume();//这行代码保证非法字符不会写入文本框
    				}
    			}*/
    		});
    	}
    	public static void main(String[] args) {
    		new MouseAndKeyEvent();
    
    	}
    
    }
    


    四,文本框,文本域,对话框的使用

    点击按钮,把第一个文本框输入的路径下的文件目录,显示到另外一个文本框中。如果第一个文本框输入的非法路径,显示提示框。

    实现文本框中按回车,和点击按钮一个效果。提示框(对话框)的运用。

    package GUI;
    
    import java.awt.*;
    import java.awt.event.*;
    import java.io.File;
    //文本框,文本域,对话框
    public class MyWindowDemo{
    
    	private Frame f;
    	private TextField tf;
    	private Button b;
    	private TextArea ta;
    	
    	MyWindowDemo(){
    		init();
    	}
    	public void init(){
    		f=new Frame("My window");
    		f.setBounds(300,200,500,400);
    		f.setLayout(new FlowLayout());
    		
    		tf=new TextField(55);
    		b=new Button("转到");
    		ta=new TextArea(25,65);
    		
    		f.add(tf);
    		f.add(b);
    		f.add(ta);
    		myEvent();
    		f.setVisible(true);
    	}
    	private void myEvent() {
    		f.addWindowListener(new WindowAdapter(){
    			@Override
    			public void windowClosing(WindowEvent e) {
    				System.exit(0);
    			}
    		});
    		//实现文本框中按回车,和点击按钮一个效果
    		tf.addKeyListener(new KeyAdapter(){
    			@Override
    			public void keyPressed(KeyEvent e) {
    				if(e.getKeyCode()==KeyEvent.VK_ENTER){
    					showDir();
    				}
    			}
    		});
    		b.addActionListener(new ActionListener(){
    
    			public void actionPerformed(ActionEvent e) {
    				showDir();
    			}
    		});
    		
    	}
    	private void showDir() {
    		String dirPath = tf.getText();
    		File dir =new File(dirPath);
    		if(dir.exists()&&dir.isDirectory()){
    			ta.setText("");
    			String[] names = dir.list();
    			for(String name:names){
    				ta.append(name+"\r\n");
    			}
    		}else{
    			String message = "您输入的信息:"+dirPath+",不存在,请重输!";
    			final Dialog d = new Dialog(f,"提示信息",true);
    			Label lb=new Label(message);
    			Button okBut = new Button("确定");
    			
    			d.add(lb);
    			d.add(okBut);
    			
    			d.setBounds(400, 200, 240, 150);
    			d.setLayout(new FlowLayout());
    			//对框框添加监听器
    			d.addWindowListener(new WindowAdapter(){
    				@Override
    				public void windowClosing(WindowEvent e) {
    					d.setVisible(false);
    				}
    			});
    			//对话框上的按钮添加监听器
    			okBut.addActionListener(new ActionListener(){
    
    				public void actionPerformed(ActionEvent e) {
    					d.setVisible(false);
    				}
    				
    			});
    			//回车键起作用
    			okBut.addKeyListener(new KeyAdapter(){
    				@Override
    				public void keyPressed(KeyEvent e) {
    					if(e.getKeyCode()==KeyEvent.VK_ENTER){
    						d.setVisible(false);
    					}
    				}
    			});
    			
    			d.setVisible(true);
    		}
    		tf.setText("");
    	}
    	public static void main(String[] args) {
    		new MyWindowDemo();
    
    	}
    
    }
    


    五,实现简单的记事本功能--运用到了打开文件对话框、保存文件对话框,还有菜单的使用。

    menu是menuItem的子类,menu有一个add()方法参数是MenuItem,所以menu可以添加menuItem,也可以添加menu。要想有子菜单的话,那么,menu需要添加menu,然后再在menu上添加menuItem。

    package GUI;
    
    import java.awt.FileDialog;
    import java.awt.Frame;
    import java.awt.Menu;
    import java.awt.MenuBar;
    import java.awt.MenuItem;
    import java.awt.TextArea;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class MyMenuDemo {
    
    	/**
    	 * 菜单:实现简单的记事本功能
    	 */
    	private Frame f;
    	private MenuBar mb;
    	private Menu m,subMenu;
    	private MenuItem openItem,saveItem,closeItem,subItem;
    	private TextArea ta;
    	private File file;
    	MyMenuDemo(){
    		init();
    	}
    	
    	public void init(){
    		f=new Frame("My Note");
    		f.setBounds(300,100,500,400);
    //		f.setLayout(new FlowLayout());
    		
    		mb=new MenuBar();
    		m=new Menu("File");
    		subMenu=new Menu("subMenu");
    		openItem = new MenuItem("open");
    		saveItem = new MenuItem("save");
    		closeItem=new MenuItem("exit");
    		subItem = new MenuItem("subItem");
    		
    		ta=new TextArea();
    		
    		subMenu.add(subItem);
    		m.add(openItem);
    		m.add(saveItem);
    		m.add(subMenu);//menu添加menu,menu是menuItem的子类
    		m.add(closeItem);//menu添加menuItem
    		mb.add(m);
    		f.setMenuBar(mb);//往frame里添加菜单条使用setMenuBar方法,而不是add方法
    		f.add(ta);//在菜单条下面添加一个文本框
    		
    		myEvent();
    		f.setVisible(true);
    		
    	}
    	private void myEvent() {
    		f.addWindowListener(new WindowAdapter(){
    			@Override
    			public void windowClosing(WindowEvent e) {
    				System.exit(0);
    			}
    		});
    		//打开对话框
    		openItem.addActionListener(new ActionListener(){
    
    			public void actionPerformed(ActionEvent e) {
    				FileDialog openDialog = new FileDialog(f,"open",FileDialog.LOAD); 
    				openDialog.setVisible(true);
    				String filePath = openDialog.getDirectory();
    				String fileName = openDialog.getFile();
    				//获取目录或文件失败的处理
    				if(filePath==null||fileName==null)
    					return;
    				f.setTitle(f.getTitle()+"^o^"+filePath+fileName);
    				ta.setText("");
    //				File file =new File(filePath,fileName);
    				file =new File(filePath,fileName);
    				BufferedReader br;
    				try {
    					br = new BufferedReader(new FileReader(file));
    					String line = null;
    					while((line=br.readLine())!=null){
    						ta.append(line+"\r\n");
    					}
    					br.close();
    				} catch (IOException e1) {
    					throw new RuntimeException("读取失败");
    				}
    			}
    			
    		});
    		//保存对话框,要考虑是否弹出
    		saveItem.addActionListener(new ActionListener(){
    
    			public void actionPerformed(ActionEvent e) {
    				if(file==null){
    					FileDialog saveDialog = new FileDialog(f,"save",FileDialog.SAVE); 
    					saveDialog.setVisible(true);
    	
    					String filePath = saveDialog.getDirectory();
    					String fileName = saveDialog.getFile();
    					//获取目录或文件失败的处理
    					if(filePath==null||fileName==null)
    						return;
    					f.setTitle(f.getTitle()+"^o^"+filePath+fileName);
    					file =new File(filePath,fileName);
    				}
    				try {
    					BufferedWriter bw = new BufferedWriter(new FileWriter(file));
    					String content = ta.getText();
    					bw.write(content);
    					bw.close();
    				} catch (IOException e1) {
    					throw new RuntimeException("写入失败");
    				}
    			}
    			
    		});
    		//菜单项退出系统
    		closeItem.addActionListener(new ActionListener(){
    
    			public void actionPerformed(ActionEvent e) {
    				System.exit(0);
    			}
    			
    		});
    	}
    	public static void main(String[] args) {
    		
    		new MyMenuDemo();
    	}
    
    }
    


     

    展开全文
  • Java GUI

    千次阅读 2018-06-23 00:35:13
    awt包:GUI元素由java类来实现核心类:Component(抽象类):代表图形元素Container: 容纳其他图形元素的容器一般Component对象需要放在Container中才可以显示布局管理器:通过setLayout方法设置不同的布局管理器:...

    awt包:

    GUI元素由java类来实现

    核心类:

    Component(抽象类):代表图形元素

    Container: 容纳其他图形元素的容器

    一般Component对象需要放在Container中才可以显示



    布局管理器:

    通过setLayout方法设置不同的布局管理器:

    布局管理器可以互相嵌套


    事件监听:

    针对不同事件需要实现不同接口


    import java.awt.*;
    import java.awt.event.*;
    
    public class TestEvent {
        public static void main(String[] args) {
            Frame f = new Frame("GUI");
            Button b = new Button("Button");
    
            Monitor m = new Monitor();
            b.addActionListener(m);\
            //对按钮元素进行监听
            
            f.add(b);
            f.pack();
            f.setVisible(true);
            
        }
    }
    
    class Monitor implements ActionListener {
        //监听器实现接口
        public void actionPerformed(ActionEvent e) {
            //将事件信息封装为对象,传入接口方法
            System.out.println("Hello");
        }
    }
    

    TextField类:文本输入框

    import java.awt.*;
    import java.awt.event.*;
    
    public class TestText {
        public static void main(String[] args) {
            new MyFrame();
        }
    }
    
    class MyFrame extends Frame {
        MyFrame() {
            TextField tf = new TextField();
            add(tf);
            tf.addActionListener(new TFActionListener());
            //tf.setEchoChar('*');
            //设置回显字符
            pack();
            setVisible(true);
        }
    }
    
    class TFActionListener implements ActionListener {
        public void actionPerformed (ActionEvent e) {
            TextField tf = (TextField) e.getSource();
            //读取事件信息,返回事件源对象,默认为Object,需要强制转换类型
            System.out.println(tf.getText());
            //读取事件源对象内容
            tf.setText("");
            //清空文本框
        }
    }


    持有对象引用:

    import java.awt.*;
    import java.awt.event.*;
    
    public class TestPlus {
        public static void main(String[] args){
            new PlusFrame().launchFrame();
        }
    }
    
    class PlusFrame extends Frame {
        TextField num1, num2, num3;
        
        public void launchFrame() {
            //运行frame
    
            num1 = new TextField(10);
            num2 = new TextField(10);
            num3 = new TextField(15);
    
            Label plus = new Label("+");
            Button equal = new Button("=");
            setLayout(new FlowLayout());
            equal.addActionListener(new Monitor(this));
            
            add(num1);
            add(plus);
            add(num2);
            add(equal);
            add(num3);
    
            pack();
            setVisible(true);
        }
    }
    
    class Monitor implements ActionListener {
    
        //方法1
        /*TextField n1, n2, n3;
        
        public Monitor(TextField n1, TextField n2, TextField n3) {
            this.n1 = n1;
            this.n2 = n2;
            this.n3 = n3;
        }
        */
    
        //方法2,更好
        PlusFrame pf = null;
        //持有对象引用,不需要引用对象内部的所有小对象
        
        public Monitor(PlusFrame pf) {
            this.pf = pf;
        }
        
        public void actionPerformed(ActionEvent e) {
            int n1 = Integer.parseInt(pf.num1.getText());
            int n2 = Integer.parseInt(pf.num2.getText());
            pf.num3.setText("" + (n1 + n2));
        }
    }

    内部类:

    好处:可以方便的访问包装类的变量和方法,避免内部类被其他无关类访问

    import java.awt.*;
    import java.awt.event.*;
    
    public class TestInnerClass {
        public static void main(String[] args){
            new PlusFrame().launchFrame();
        }
    }
    
    class PlusFrame extends Frame {
        TextField num1, num2, num3;
        
        public void launchFrame() {
    
            num1 = new TextField(10);
            num2 = new TextField(10);
            num3 = new TextField(15);
    
            Label plus = new Label("+");
            Button equal = new Button("=");
            setLayout(new FlowLayout());
            equal.addActionListener(new Monitor());
            
            add(num1);
            add(plus);
            add(num2);
            add(equal);
            add(num3);
    
            pack();
            setVisible(true);
        }
    
        //方法3
        class Monitor implements ActionListener {
            //内部类
            //可以访问外部的包装类
            public void actionPerformed(ActionEvent e) {
                int n1 = Integer.parseInt(num1.getText());
                int n2 = Integer.parseInt(num2.getText());
                num3.setText("" + (n1 + n2));
            }
        }
    }


    Graphics类:

    import java.awt.*;
    
    public class TestPaint {
        public static void main(String[] args) {
            new PaintFrame().launchFrame();
        }
    }
    
    class PaintFrame extends Frame {
        public void launchFrame() {
            setBounds(200, 200, 400, 400);
            setVisible(true);
        }
    
        public void paint(Graphics g) {
            //每次frame需要被重画时,paint方法会被自动调用
            //调用Graphics g这个画笔
            Color c = g.getColor();
            g.setColor(Color.red);
            g.fillOval(50, 50, 30, 30);
            g.setColor(Color.green);
            g.fillRect(80, 80, 40, 40);
            g.setColor(c);
        }
    }

    鼠标适配器:

    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    
    public class TestMouse {
        public static void main(String[] args) {
            new MyFrame("TIRED");
        }
    }
    
    class MyFrame extends Frame {
        ArrayList<Point> point = null;
        MyFrame(String s) {
            super(s);
            point = new ArrayList<Point>();
            setLayout(null);
            setBounds(300, 300, 400, 400);
            this.setBackground(Color.white);
            setVisible(true);
            this.addMouseListener(new Monitor());
            //鼠标进行监听
        }
    
        public void paint(Graphics g) {
            Iterator<Point> i = point.iterator();
            while(i.hasNext()) {
                Point p = (Point) i.next();
                g.setColor(Color.black);
                g.fillOval(p.x, p.y, 5, 5);
            }
        }
    
        public void addPoint(Point p) {
            point.add(p);
        }
    }
    
    class Monitor extends MouseAdapter {
        //不实现MouseListener是为了避免实现所有方法
        public void mousePressed(MouseEvent e) {
            MyFrame f = (MyFrame) e.getSource();
            //拿到事件源对象
            f.addPoint(new Point(e.getX(), e.getY()));
            f.repaint();
            //对当前frame进行重画,保证每次点击后都立即重画
            //内部先调用update,再调用paint
            
        }
    }
    

    Window事件:

    import java.awt.*;
    import java.awt.event.*;
    
    public class TestClose {
        public static void main(String[] args) {
            new CloseFrame("Close");
        }
    
    }
    
    class CloseFrame extends Frame {
        CloseFrame(String s) {
            super(s);
            setLayout(null);
            setBounds(300, 300, 400, 400);
            setVisible(true);
            //this.addWindowListener(new Monitor());
    
            //匿名类,new父类对象(实现了方法)
            this.addWindowListener(new WindowAdapter() {
                    public void windowClosing(WindowEvent e) {
                        setVisible(false);
                        System.exit(0);
                    }
                });
        }
        
        //内部类
        /*
        class Monitor extends WindowAdapter {
            public void windowClosing(WindowEvent e) {
                setVisible(false);
                System.exit(0);
            }
        }
        */
    }
    

    Key事件:

    import java.awt.*;
    import java.awt.event.*;
    
    public class TestKey {
        public static void main(String[] args) {
            new KeyFrame().launchFrame();
        }
    }
    
    class KeyFrame extends Frame {
        public void launchFrame() {
            setSize(200, 200);
            setLocation(300, 300);
            setVisible(true);
            this.addKeyListener(new Monitor());
        }
    
        class Monitor extends KeyAdapter {
            public void keyPressed(KeyEvent e) {
                int keyCode = e.getKeyCode();
                if(keyCode == KeyEvent.VK_UP) {
                    System.out.println("UP");
                }
                if(keyCode == KeyEvent.VK_DOWN) {
                    System.out.println("DOWN");
                }
                if(keyCode == KeyEvent.VK_LEFT) {
                    System.out.println("LEFT");
                }
                if(keyCode == KeyEvent.VK_RIGHT) {
                    System.out.println("RIGHT");
                }
            }
        }
    }
    

    展开全文
  • java gui

    2015-02-01 14:25:36
    用来编写gui程序。它是java早期的产物,后被swing替代。 swing是在awt基础上提供的新的界面工具包,它比awt运行速度快,界面也更加漂亮。 但是,事件的响应等工作还是要用awt来完成。 例子:

    awt,Abstract Window Toolkit,抽象窗口工具包。用来编写gui程序。它是java早期的产物,后被swing替代。

    swing是在awt基础上提供的新的界面工具包,它比awt运行速度快,界面也更加漂亮。 但是,事件的响应等工作还是要用awt来完成。

    例子:

    展开全文
  • java GUI

    2013-10-22 15:10:41
    61.178.172.6-netcai-javagui-cd-rom.htm
  • Java GUIJava GUI基础

    千次阅读 2015-06-06 11:15:25
    在写GUI程序时,Swing和AWT都要作用。他们共存于 Java基础类(JFC)中。尽管AWT和Swing都提供了构造图形界面元素的类,但它们的虫药方面有所不同。AWT依赖于主平台绘制用户界面组件,而Swing有自己的机制,在主平台...
  • java GUI例子

    2019-04-24 21:41:44
    这是关于java GUI 简单例子,刚学的看看就行了,很简单的小例子
  • java GUI编程

    2008-09-26 02:41:20
    java gui编程的绝对好书,我都看了两遍了!
  • Java Gui 皮肤包 

    热门讨论 2011-10-15 20:46:52
    Java Gui 皮肤包 8个 Java Gui 皮肤包  UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel"); 一般引入jar包中已LookAndFeel结尾的类就行了
  • java gui计算器

    2009-11-02 20:55:39
    设计GUI界面的计算器程序,用户可以通过鼠标依次输入参加计算的数值,进行加,减,乘,除等混合运算
  • Java GUI 教学

    2015-12-28 22:31:07
    Gui 示范教学 鼠标的添加 监听 控制 窗口的添加 监听 控制
  • Java GUI做一个简单的管理系统

    万次阅读 多人点赞 2017-04-17 16:07:41
    教师学生信息管理系统、java初学者,利用Java语言的GUI完成
  • Java GUI程序设计

    千次阅读 2012-05-02 16:25:59
    GUI程序设计 用户界面的需要 用户界面的类型 字符用户界面(CUI),例如MS-DOS 图形用户界面(GUI,Graphical User Interface )是指以图形化方式与用户进行交互的程序运行界面,例如Microsoft Windows、Word等。 ...
  • java GUI技术大全

    2011-04-08 21:56:28
    全面的描述javagui技术.全面的描述javagui技术
  • java GUI初试 满天星

    千次阅读 2016-07-26 17:37:07
    实现内容, (1)创建一个特定大小的窗体 (2)在窗体中打印 * 作为星星 (3)用graphics 画笔进行...(3)图片的插入,位置大小的设定以下是源码,分享共同学习 哈哈内容类 涉及画布内容的绘制import java.awt.C
  • Java GUI 切换面板

    2010-08-02 17:57:40
    该资源是javax.swing 包中的类,使用该类的中方法实现面板的切换,是使用者能够清晰的明了的使用GUI程序
  • javaGui程序设计

    2007-07-06 09:34:11
    javaGui程序设计
  • Java GUI的组成&GUI事件处理

    千次阅读 2012-05-03 19:48:25
    GUI的组成 GridLayout:网格布局 布局效果:将容器区域划分成规则的矩形网格,每个单元格区域大小相等。组件被添加到每个单元格中,按组件加入顺序先从左到右填满一行后换行,行间从上到下。 一个单元格...
  • 本系统采用JAVA GUI,即Java Swing包开发,利用Java Socket进行客户端和服务器进行通信系统界面美观,数据库完整,由于项目进展时间,没有为数据库表间添加关系(外键,触发器等),代码仅供参考,请勿用于他途。
  • javaGUI编程例子

    2015-06-11 17:15:12
    开发环境: Eclipse luna(2015) jdk1.7 mysql5.5 功能: 1、用户登录、注册 2、正则表达式验证 3、用户信息增删改查 4、用户记录分页列表显示 5、级联下拉框
  • java swing开发学生选课系统 数据库使用MySQL 该系统主要包括学生和管理员两个用户角色 以学生角色登陆进去 学生可以查看自己的选修课情况 修改自己的个人信息 以管理员的角色登陆进去,管理员可以查看选修课的选修...
  • java GUI编程炫酷皮肤包java GUI编程炫酷皮肤包java GUI编程炫酷皮肤包java GUI编程炫酷皮肤包java GUI编程炫酷皮肤包
  • JAVA GUI 學生管理

    2018-10-29 16:18:49
    Java GUI做的一个简单的學生管理系统,可鏈接數據庫,主要代碼。
  • Java GUI实用小工具集 Common Gui Tools ,Common Gui Tools是用java编写,GUI界面的实用小工具集,1.2版有16个小工具:...
  • 本学生成绩管理系统使用Java GUI和MySQL数据库以及相关知识,分为管理员、教师用户和学生用户三种登录方式,主要的功能就是对学生的成绩进行管理和查询。
  • 使用Java GUI 实现的信号灯小程序,有信号灯红灯和绿灯。红绿灯每个一段时间变化一次,有两个小车,红灯亮时停车,绿灯亮时移动。
  • 常用的JavaGui类库

    2017-11-12 09:13:46
    常用的JavaGui类库,包括从网上收集的和自己整理的常用代码。

空空如也

1 2 3 4 5 ... 20
收藏数 20,102
精华内容 8,040
关键字:

javagui

java 订阅