• 图形界面编程_2


    版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/u012421456/article/details/32322303

           上次说了,假设不加入事件。点击窗体右上方的X,窗体是不会关闭的,如今要说一下,这是在awtFrame的情况,假设是使用swing下的JFrame,则不须要加入事件就可以直接关闭button,awt的功能,swing基本上能够全然代替。并且用swing的组件实现的窗体外观上也比awt的组件实现的窗体要美观一些,例如以下图所看到的:

              

    以下会主要使用swing。举一些样例

    1:

    import java.awt.*;
    import javax.swing.*;
    
    public class san {
    	public static void main(String[] args) {
    		a1 a = new a1();
    	}
    }
    
    class a1 {
    	JFrame f = new JFrame("举例");
    	JPanel p = new JPanel();// 面板
    
    	a1() {
    		/* button */
    		JButton b1 = new JButton("按 钮1");
    		JButton b2 = new JButton("按 钮2");
    		JButton b3 = new JButton("按 钮3");
    		JButton b4 = new JButton("按 钮4");
    		p.add(b1);
    		p.add(b2);
    		p.add(b3);
    		p.add(b4);
    
    		/* 标签 */
    		JLabel jb1 = new JLabel("标签1");
    		JLabel jb2 = new JLabel("标签2");
    		JLabel jb3 = new JLabel("标签3");
    		JLabel jb4 = new JLabel("标签4");
    		p.add(jb1);
    		p.add(jb2);
    		p.add(jb3);
    		p.add(jb4);
    
    		/* 单选button */
    		JRadioButton j1 = new JRadioButton("天下风云出我辈");
    		JRadioButton j2 = new JRadioButton("一入江湖岁月催");
    		JRadioButton j3 = new JRadioButton("皇图霸业谈笑中");
    		JRadioButton j4 = new JRadioButton("不胜人生一场醉");
    		j1.setSelected(true); // 让单选button处于被选中状态
    		j2.setSelected(true);
    		p.add(j1);
    		p.add(j2);
    		p.add(j3);
    		p.add(j4);
    
    		p.setBackground(Color.cyan);// 背景颜色
    		f.add(p);
    		f.setSize(200, 300);
    		f.setVisible(true);
    		f.setLocation(300, 200);
    	}
    }

    程序执行结果为:


    本程序主要用到的有button、标签和单选button

     

    2

    import java.awt.*;
    import javax.swing.*;
    
    public class asd {
    
    	public static void main(String[] args) {
    		a2 a = new a2();
    	}
    }
    
    class a2 {
    	JFrame f = new JFrame("举例");
    	JPanel p = new JPanel();
    
    	a2() {
    		/* 下拉列表框 */
    		Choice citext;
    		citext = new Choice();
    		citext.add("C语言");
    		citext.add("数据结构");
    		citext.add("java");
    		citext.add("编译原理");
    		citext.add("计算机组成原理");
    		citext.add("操作系统");
    		p.add(citext);
    
    		/* 单选框 */
    		JCheckBox bq1 = null;
    		bq1 = new JCheckBox("读书");
    		bq1.setSelected(true); // 选中单选框
    		p.add(bq1);
    
    		/* 文本框 内部文字可改变 */
    		JTextField JT1, JT2, JT3, JT4;
    		JT1 = new JTextField(" 金麟岂是池中物 ");
    		JT2 = new JTextField(" 一遇风云便化龙 ");
    		JT3 = new JTextField(" 九霄龙吟惊天变 ");
    		JT4 = new JTextField(" 风云际会浅水游 ");
    		p.add(JT1);
    		p.add(JT2);
    		p.add(JT3);
    		p.add(JT4);
    
    		/* 文本域 内部文字可改变 */
    		TextArea te;
    		te = new TextArea("人道渺渺。仙道莽莽。鬼道乐兮。当人生门。

    ··· 诸天气荡荡,我道日兴隆。

    ", 10, 25); p.add(te); p.setBackground(Color.cyan);// 背景颜色 f.add(p); f.setSize(240, 300); f.setVisible(true); f.setLocation(300, 200); } }

    程序执行结果为:


    像那四句诗和下边那句话所在的位置出都是能够编辑的,当然,也不过能够编辑,本程序所用到的有下拉列表、单选框、文本框和文本域

     

    3

    import java.applet.*;
    import java.io.File;
    import java.net.MalformedURLException;
    import java.net.URL;
    import javax.swing.*;
    
    public class TX {
    
    	public static void main(String[] args) {
    		tupian_yinyue tp = new tupian_yinyue();
    	}
    }
    
    class tupian_yinyue { 
    	tupian_yinyue() {
    		JFrame f = new JFrame();
    		JPanel pan = new JPanel();
    		
    		/*背景音乐*/
    		try {
    			URL cb;
    			File f1 = new File("C:\Users\CC\Desktop\秦时明月-谁主沉浮.wav"); // 引號里面的是音乐文件所在的绝对路径
    			cb = f1.toURL();
    			AudioClip aau;
    			aau = Applet.newAudioClip(cb);
    			aau.play();
    			aau.loop();
    
    		} catch (MalformedURLException e) {
    			e.printStackTrace();
    		}
    		
    		/*背景图片 */
    		ImageIcon i1 = new ImageIcon("C:\Users\CC\Desktop\1.gif");//图片的绝对路径
    		ImageIcon i2 = new ImageIcon("C:\Users\CC\Desktop\java.jpg");
    		JButton b1 = new JButton(i1);
    		JButton b2 = new JButton(i2);
    		pan.add(b1);
    		pan.add(b2);
    		f.add(pan);
    		f.setSize(340, 400);
    		f.setVisible(true);
    		f.setLocation(300, 200);
    	}
    }
    

    程序执行结果为:


    图片和音乐是我的本地的文件,其后都是图片和音乐所在的绝对路径

    音乐应为wav格式,我的资源里有格式转换器

    这个程序是将两个图片(一个gif格式,一个jpg格式)放到button上,然后把button放到面板上。终于把面板放到框架上

     

    上面那些,一都是简单的知识,以下会举一个略微深一点的样例

     

    4

    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
    
    public class san {
    	public static void main(String[] args) {
    		a1 a = new a1();
    	}
    }
    
    class a1 {
    	JFrame f = new JFrame("举例");
    	JPanel p = new JPanel();// 面板
    
    	a1() {
    		/************************ 点击button打开新窗体 *************************************/
    		JButton but = new JButton("传送门");
    		p.add(but);
    
    		but.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				JFrame frame = new JFrame("天下");
    				
    				ImageIcon i1 = new ImageIcon("C:\Users\CC\Desktop\2.gif");//图片的绝对路径
    				JButton b1 = new JButton(i1);
    				JButton b2 = new JButton("道可道,很道");
    				
    				b2.setFont(new Font("隶书", Font.PLAIN, 100));//设置字体类型和大小
    				frame.setLayout(new GridLayout(2, 6, 20, 20));
    				
    				frame.add(b2, "North");
    				frame.add(b1, "Center");
    				
    				frame.setVisible(true);
    				frame.setBounds(0, 0, 1000, 600);//窗体大小
    				frame.setVisible(true);
    //				frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    			}
    		});
    		/**************************************************************************/
    
    		p.setBackground(Color.cyan);// 背景颜色
    		f.add(p);
    		f.setSize(200, 300);
    		f.setVisible(true);
    		f.setLocation(1000, 200);
    	}
    }

    本程序是给button加入了事件,点击button。会打开新的窗体,在新的窗体中,有两个button,一个button上是几个字。一个button上是一个动态图片。

    程序执行结果例如以下:


    点击传送门button后。出现的新窗体界面为:

    须要注意的是,此时假设点击关闭新窗体的右上方的 ,一開始的窗体也会关闭。假设想让新窗体关闭时不影响旧的窗体,能够将倒数第12行的代码凝视就可以。

     


    【全部代码均在windows系统下eclipse环境JDK 1.7下执行通过】

    (如有错误。敬请指正)

  • 相关阅读:
    配置ASP.NET 2.0环境
    httpwatch
    自定义分页控件
    clear在CSS中的妙用
    Maximum length exceeded错误
    SQLServer数据表分区优化数据库
    游标的使用
    在Sql Server 使用系统存储过程sp_rename修改表名或列名
    SQL Server中如何备份到异机
    SQL Server 中 自定义函数 和 游标 应用的经典案例
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10469617.html
  • Copyright © 2020-2023  润新知