本文目录一览:
- 1、java设计和实现图形用户界面的主要工作有哪些
- 2、问下,大家做Java开发的时候,是否很少会用到Java开发图形化界面?
- 3、java在GUI开发上有什么缺点?
- 4、java怎么实现这个图形化界面
- 5、在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用什么类的对
java设计和实现图形用户界面的主要工作有哪些
步骤如下,都是我自己整理的:一维数组:1.声明一维数组 在Java语言中,数组是一种引用类型,数组名如同对象名一样,是一种引用。声明数组是声明一个标识符能引用数组,需要指定数组元素的类型。声明一维数组有两种格式: 数组元素类型 数组名[]; 或者 数组元素类型[] 数组名; Student stu[];//与Student[] stu; 等价2.创建一维数组 创建一维数组就是为数组分配存储空间,需指定数组长度。数组创建后,数组名就标识用于存储数组元素的存储空间。创建一维数组的方法有3种: (1) 先声明后创建 创建数组代码的一般形式为:数组名字 = new 数组元素类型[元素个数]; 例如,代码: int intArray []; intArray = new int[5]; (2) 声明时创建 把声明数组和创建数组的代码结合在一起。例如: int intArray[] = new int[5]; (3) 直接赋值创建 在声明数组时,直接给出数组的初值。例如: int [] intArray = {1,2,3,4,5}; 直接赋值创建数组的方法也称为数组初始化。在数组初始化的代码中,花括号{}内初值间的分隔符是逗号”,”。系统根据数组初始化时提供的初值个数确定数组的元素个数,然后为数组分配空间,并为数组各元素依次赋初值。上述代码相当于: int intArray[] = new int[5]; intArray[0]=1; intArray[1]=2; intArray[2]=3;intArray[3]=4; intArray[4]=5; 前两种方法创建数组时,系统会给数组元素提供默认初始值:数值型数组元素的默认值是0;char类型数组元素的默认值是全0代码字符;布尔类型数组元素的默认值是false。在Java中,所有数组都有一个成员length,程序可以访问它,获得数组的元素个数,但不能改变它。例如,按照前面数组intArray的定义,intArray.length的值是5。 3.引用一维数组元素 引用一维数组元素代码的一般形式为 数组名[下标] 数组下标可以是整型常数或者整型表达式。数组下标范围是0到数组名.length-1。为了确保程序安全性,Java运行系统对数组下标自动进行范围越界检查。 4.数组是一种引用类型 数组也是一种引用类型,一个数组名在不同时间可引用不同数组。代码: myArray =firstArray; myArray =secondArray;4.1.2 多维数组 数组元素有多个下标的数组就是多维数组。多维数组是一种数组的数组,例如,当数组的元素又是一维数组时,就是一个二维数组。在Java程序中,可以有三维数组,或四维数组等。以下以二维数组为例说明多维数组。 1. 声明二维数组 声明二维数组的一般形式有以下3种(类似的代码可以声明多维数组):类型 数组名 [ ][ ] 类型 [ ][ ] 数组名 类型 [ ] 数组名 [ ] 2. 创建二维数组 创建二维数组对象的方法有多种: (1) 直接分配(平衡二维数组——矩阵):类型 数组名[][]=new 类型[长度1][长度2] (2) 从最高维开始,分别对每一维分配不等长的空间(非平衡数组):以二维数组为例,先指定第一维,创建有指定子数组个数的二维数组后,依次对每个子数组确定元素个数,并创建子数组。例如,以下代码创建一个二维数组a[][],它有3个子数组,第一个子数组有4个元素,第2个子数组有5个元素,第3个子数组有2个元素: int a[][] = new int[3]; a[0]=new int [4]; a[1]=new int[5]; a[2]=new int[2];(3) 直接赋值创建 声明二维数组,同时直接给出各子数组的元素。如果子数组的元素个数不同,则创建是一个非平衡的二维数组。例如,代码: int [][]x= {{5,6,7}, {8,9,10,11}, {2,9} }; 3. 引用二维数组 二维数组元素的引用方式是: 数组名[下标1][下标2] 下标1是第一维下标,下标2是第二维下标。 4. 使用二维数组要注意的问题 对于二维数组,要注意以下两点: (1) 二维数组名,length和二维数组名[下标1].length的区别。二维数组名.length是二维数组的子数组个数;二 维数组名[下标1].length是指定子数组的元素个数。(2) 二维数组名[下标]是一维数组。 public class Examle3_1 { public static void main(String args[]) { boolean bTb1[][] = new boolean[4][]; for (int i = 0; i bTb1.length; i++) { bTb1[i] = new boolean[i + 1]; for (int k = 0; k bTb1[i].length; k++) { System.out.print(bTb1[i][k] + " "); } System.out.println("");}}}
图形用户界面要先加入组件到容器中,然后再给组件添加监听器,具体如下:图形界面设计基础 图形用户界面Graphical User Interface,GUI 5.1.1AWT和Swing Swing可以看作是AWT (AbstractWindow Toolkit)的改良版,而不是代替AWT,是对AWT的提高和扩展。所以在写GUI 程序时,Swing 和AWT 都要作用。它们共存于Java基础类(Java Foundation Class,JFC)中。 AWT 和 Swing 都提供了构造图形界面元素的类,它们的不同:AWT 依赖于主平台绘制用户界面组件;而Swing 有自己的机制,在主平台提供的窗口中绘制和管理界面组件。Swing 与AWT 之间的最明显的区别是界面组件的外观,AWT 在不同平台上运行相同的程序,界面的外观和风格可能会有一些差异。然而,一个基于 Swing 的应用程序可能在任何平台上都会有相同的外观和风格。Swing 中的类是从AWT继承的,有些Swing类直接扩展AWT中对应的类。例如JApplet、JDialog、JFrame和JWindow。使用Swing设计图形界面,主要引入两个包: javax.swing 包含Swing 的基本类;java.awt.event 包含与处理事件相关的接口和类。 5.1.2组件和容器 组件(component)是图形界面的基本元素,用户可以直接操作,例如按钮。容器(Container)是图形界面的的复合元素,容器可以包含组件,例如面板。Java 语言为每种组件都预定义类,程序通过它们或它们的子类创建各种组件对象,如,Swing 中预定义的按钮类JButton是一种类,程序创建的JButton对象,或JButton子类的对象就是按钮。Java语言也为每种容器预定义类,程序通过它们或它们的子类创建各种容器对象。例如,Swing中预定义的窗口类JFrame是一种容器类,程序创建的JFrame或JFrame子类的对象就是窗口。为了统一管理组件和容器,为所有组件类定义超类,把组件的共有操作都定义在Component类中。同样,为所有容器类定义超类 Container 类,把容器的共有操作都定义在 Container 类中。例如,Container 类中定义了 add()方法,大多数容器都可以用add()方法向容器添加组件。Component、Container 和Graphics 类是AWT 库中的关键类。为能层次地构造复杂的图形界面,容器被当作特殊的组件,可以把容器放入另一个容器中。例如,把若干按钮和文本框分放在两个面板中,再把这两个面板和另一些按钮放入窗口中。5.1.3事件驱动程序设计基础 1.事件、监视器和监视器注册 图形界面上的事件是指在某个组件上发生用户操作。对事件作监视的对象称为监视器,监视器提供响应事件的处理方法。要让监视器与事件对象关联起来需对事件对象作监视器注册,告诉系统事件对象的监视器。 2.实现事件处理的途征 java语言编写事件处理程序主要有两种方案;一个是程序重设handleEvent(Eventevt),采用这个方案的程序工作量稍大一些。另一个方案是程序实现一些系统设定的接口。java按事件类型提供多种接口,作为监视器对象的类需要实现相应的接口,即实现响应事件的方法。当事件发生时,系统内设的handleEvent(Event evt)方法就自动调用监视器的类实现的响应事件的方法。java.awt.event 包中用来检测并对事件做出反应的模型包括以下三个组成元素: (1)源对象:事件“发生”这个组件上,它与一组“侦听”该事件的对象保持着联系。(2)监视器对象:一个实现预定义的接口的类的一个对象,该对象的类要提供对发生的事件作处理的方法。(3)事件对象:它包含描述当事件发生时从源传递给监视器的特定事件的信息。一个事件驱动程序要做的工作除创建源对象和监视器对象之外,还必须安排监视器了解源对象,或向源对象注册监视器。每个源对象有一个已注册的监视器列表,提供一个方法能向该列表添加监视器对象。只有在源对象注册了监视器之后,系统才会将源对象上发生的事件通知监视器对象。3.事件类型和监视器接口 在 java 语言中,为了便于系统管理事件,也为了便于程序作监视器注册,系统将事件分类,称为事件类型。系统为每个事件类型提供一个接口。要作为监视器对象的类必须实现相应的接口,提供接口规定的响应事件的方法。再以程序响应按钮事件为例,JButton类对象button可以是一个事件的激发者。当用户点击界面中与button对应的按钮时,button对象就会产生一个ActionEvent类型的事件。如果监视器对象是obj,对象obj的类是Obj,则类Obj必须实现AWT中的ActionListener接口,实现监视按钮事件的actionPerformed方法。button对象须用addActionListener方法注册它的监视器obj。程序运行时,当用户点击 button 对象对应的按钮时,系统就将一个 ActionEvent 对象从事件激发对象传递到监视器。ActionEvent对象包含的信息包括事件发生在哪一个按钮,以及有关该事件的其他信息。
问下,大家做Java开发的时候,是否很少会用到Java开发图形化界面?
之前我不用选择用java的awt和swing。但是现在有了eclipse的swt,用它可以很方便的开发出windows风格的窗口,所以我觉得swt给java图形化界面带来了春天。
java在GUI开发上有什么缺点?
不在JRE的标准库中。因此必须将它和程序捆绑在一起。
AWT是Abstract Window Toolkit(抽象窗口工具包)的缩写,是SUN专门针对Java GUI编程提供的最早的也是最初的开发工具包,用来建立和设置Java图形用户界面,这个工具包提供了一套与本地图形界面交互的接口。
AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系(peers)。也就是说,当我们利用 AWT 来构件图形用户界面的时候,实际上是在利用操作系统所提供的图形库。不过由于不同操作系统的图形库所提供的功能是不完全一样,所以在一个平台上存在的功能在另外一个平台上则可能不存在。
这就导致一些应用程序在测试时界面非常美观,而一旦移植到其他的操作系统平台上后就可能变得“惨不忍睹”。为了实现Java语言"一次编译,到处运行",AWT 不得不通过牺牲功能来实现其平台无关性,其所提供的图形功能被定格为各种通用型操作系统所提供的图形功能的交集。
由于AWT 是依靠本地方法来实现其功能的,所以通常把AWT组件称为重量级组件。
java怎么实现这个图形化界面
java图形化界面还是有很多内容要学习的,可以参考 如下实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public class Test extends JFrame{
MyPanel mp=null;
public static void main(String[] args){
// TODO Auto-generated method stub
Test jf= new Test();
}
public Test(){
mp=new MyPanel();
this.add(mp);
//设置标题
this.setTitle("绘图");
//设置窗体大小
this.setSize(400, 300);
//设置窗体的位置
this.setLocation(100,100);
//限制窗体的大小
this.setResizable(false);
//关闭窗体时,同时退出java虚拟机
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示窗体
this.setVisible(true);
}
}
//定义一个MyPanel(我自己的面板,用于绘图和实现绘图区域)
class MyPanel extends JPanel
{
//覆盖JPanel的paint方法
//Graphics是绘图的重要类,可以把它理解成一只画笔
public void paint(Graphics g)
{
//1。调用父类函数完成初始化
super.paint(g);
// //画圆
// g.drawOval(100, 100, 20, 20);
// //画直线
// g.drawLine(50, 150,150, 200);
// //画矩形边框
// g.drawRect(150, 150, 30, 40);
//
// //设置颜色。默认为黑色
// g.setColor(Color.blue);
// //填充矩形
// g.fillRect(10, 10, 20, 30);
//画弧形
g.drawArc(200,10, 100,150, 120,-80);
//在面板上画图片
Image im=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("图片路径"));
//显示图片
g.drawImage(im, 10, 10,200,180,this);
//画字
g.setColor(Color.red);
g.setFont(new Font("华文彩云",Font.BOLD,20));
g.drawString("要写的字", 80,220);
}
}
在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用什么类的对
input 输入框有disabled属性,加个这文本信息变成灰色的,就无法编辑了