图形界面编程_2

上次说了,如果不添加事件,点击窗口右上方的X,窗口是不会关闭的,现在要说一下,这是在awt下Frame的情况,如果是使用swing下的JFrame,则不需要添加事件即可直接关闭按钮,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() {
		/* 按钮 */
		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);

		/* 单选按钮 */
		JRadioButton j1 = new JRadioButton("天下风云出我辈");
		JRadioButton j2 = new JRadioButton("一入江湖岁月催");
		JRadioButton j3 = new JRadioButton("皇图霸业谈笑中");
		JRadioButton j4 = new JRadioButton("不胜人生一场醉");
		j1.setSelected(true); // 让单选按钮处于被选中状态
		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);
	}
}

程序运行结果为:

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

例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格式)放到按钮上,然后把按钮放到面板上,最终把面板放到框架上

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

例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() {
		/************************ 点击按钮打开新窗口 *************************************/
		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);
	}
}

本程序是给按钮添加了事件,点击按钮,会打开新的窗口,在新的窗口中,有两个按钮,一个按钮上是几个字,一个按钮上是一个动态图片,

程序运行结果如下:

点击传送门按钮后,出现的新窗口界面为:

需要注意的是,此时如果点击关闭新窗口的右上方的 X ,一开始的窗口也会关闭,如果想让新窗口关闭时不影响旧的窗口,可以将倒数第12行的代码注释即可。

【所有代码均在windows系统下eclipse环境JDK 1.7下运行通过】

(如有错误,敬请指正)

图形界面编程_2

时间: 2024-10-08 03:15:34

图形界面编程_2的相关文章

五,图形界面编程

五,图形界面编程 一,图形界面编程swt; 1,awt 1,图形类 Button 2,辅助类 1,工具类 2,字体类 3,颜色类 2,Swing 1,图形类 jButton 二,容器与组件 1,首层容器 Contoner 1,所有的中间容器和组件都放在首层容器里 2,常用的首层容器 JApplet-动画效果-过时 Jdiologo-弹出框 Jframe-常用的首层容器 Jwindow 3,先new jframe对象,在设置宽高 ,ste size(宽,高): 内宽高,先水平在垂直先宽后高,单位像

C语言控制台窗口图形界面编程(八):鼠标事件

<知识分享> 上次讲的是键盘事件,这次我们介绍鼠标事件.下面先介绍下鼠标事件的结构体以及相关信息. typedef struct _MOUSE_EVENT_RECORD      //鼠标事件结构体 { COORD dwMousePosition;      //当前鼠标在控制台窗口缓冲区的位置 DWORD dwButtonState;        //鼠标按键的状态 DWORD dwControlKeyState;    //控制键状态 DWORD dwEventFlags;       

C语言控制台窗口图形界面编程(一)

本系列文章改编自<C语言控制台窗口界面编程(修正版)>.本系列文章会抛弃一些原文中难懂难理解且不常用的部分,并修改了部分样例程序.只为了更加清晰地学习C语言的控制台窗口界面编程.而想要更加深入的了解本系列文章,请阅读<C语言控制台窗口界面编程(修正版)>. <C语言控制台窗口界面编程(修正版)>下载地址:http://download.csdn.net/detail/jzqt_t/7471013 在Windows操作系统下用C语言编写控制台的窗口界面首先要获取当前标准输

C语言控制台窗体图形界面编程(总结)

本系列文章是笔者通过学习<C语言控制台窗体界面编程(修正版)>而写(关于此文档的很多其它信息请看本系列文章第一篇),旨在让大家更加清晰简洁easy地学习C语言控制台窗体界面的编程. 通过本系列文章我们能够在控制台窗体中制作好看的图形界面,方便了在非TC开发环境中的控制台窗体中进行文本界面和图形界面的设计,有利于向Windows应用程序开发过渡.也能够通过学习这些东西写些好玩的经典游戏比方贪吃蛇,扫雷和俄罗斯方块等. 事实上这些编程技巧并不算是C语言的.事实上,它仅仅只是是通过调用Windows

多线程编程、Java I/O系统和Java图形界面编程

多线程编程: 一个正在运行的程序通常称为一个进程,每一个任务称为一个线程,中能够在一个程序内运行多线程的程序称为多线程程序. 线程与进程的区别:①每个进程都需要操作系统为其分配独立的内存空间: ②而同一个进程中的所有线程都在同一内存空间工作,这些线程可以共享同一块内存和系统资源. 线程的创建: 1)通过继承Thread类来创建线程: ①创建一个继承Thread类的类: ②在创建的Thread子类中重写run()方法,在方法中写入想要线程运行的代码: ③创建Thread子类的实例: ④通过调用该实

C语言控制台窗口图形界面编程(二)

下面介绍几个用于控制台窗口操作的API函数,如下: [cpp] view plaincopy //获取控制台窗口信息 GetConsoleScreenBufferInfo(); //获取控制台窗口标题 GetConsoleTitle(); //更改指定缓冲区大小 SetConsoleScreenBufferSize(); //设置控制台窗口标题 SetConsoleTitle(); //设置控制台窗口信息 SetConsoleWindowInfo(); 下面的示例程序用于说明此类函数的使用: [

Java图形界面编程

一:基本概念 AWT(Abstract Window Toolkit) 抽象窗口工具包,SUN 公司提供的用于图形界面编程(GUI)的类库.但是AWT得实现严重依赖于下层操作系统,所以导致组件AWT的外观取决于程序运行的平台.AWT的类和接口都定义在java.awt包中. Swing    Swing组件是实在AWT基础上开发的新型GUI组件,它是纯Java实现的轻量级(light-weight)组件,它不依赖任何特定平台,Swing组件在不同平台具有一致性的表现,但是Swing应用程序的界面外

GUI图形界面编程之事件处理机制

事件处理机制三要素: 事件源:能够产生事件的组件 事件:用户对组件的一个操作 事件监听器:接收事件.解释事件并处理用户交互的方法处理事件源发生的事件 事件处理机制:当组件(比如 Button)被点击时就会产生ActionEvent事件,事件被传递给一个 ActionListener 对象,再由ActionListener 定义的方法来响应处理事件(自动调用ActionEvent) 当事件发生后,将某事件的对象传递给事件监听器(事件监听器实现了发生此事件所对应的接口),事件监听器会处理此事件,为了

C语言控制台窗口图形界面编程(三)

<知识分享> 在这里介绍一个设置文本属性的函数,原型如下 [cpp] view plaincopy BOOL SetConsoleTextAttribute(   // 设置WriteConsole等函数的字符属性 HANDLE hConsoleOutput,          // 句柄 WORD wAttributes                // 文本属性 ); 顺便提一下文本属性,其实就是颜色属性,有背景色和前景色(就是字符的颜色)两类,每一类只提供三原色(红,绿,蓝)和加强色(