java作业图形用户界面
- 格式:doc
- 大小:145.00 KB
- 文档页数:6
java实验5图形⽤户界⾯设计试验常⽤布局1)、流布局: FlowLayout 从左到右,⾃上⽽下⽅式在容器中排列,控件的⼤⼩不会随容器⼤⼩变化.容器.setLayout(new FlowLayout(FlowLayout.LEFT));2)、⽹格布局: GridLayout 按照指定⾏数与列数,将容器分成⼤⼩相等的单元格每个单元格放置⼀个控件. 不能将控件放在指定单元格 容器.setLayout(new GridLayout(3,4,10,15));3)、边界布局: BorderLayout 将容器分成东、西、南、北、中五个部分 容器.setLayout(new BorderLayout()); 窗⼝的内容⾯板默认布局就是边界布局。
容器.add(控件,BorderLayout.NORTH);4)、混合布局: 使⽤JPanel,将多个布局组合在⼀起使⽤5)、绝对布局 null: 以坐标定位 容器.setLayout(null); 每个控件在放置在容器之前,必须设置其边界 setBounds(x,y,width,height); btn.setBounds(10,100,30,60);常⽤事件1)、事件源 EventSource:能够触发事件控件如:JButton,JTextField,JFrame,JComboBox,....2)、事件 Event:ActionEvent,KeyEvent,WindowEvent,TextEvent,...3)、事件侦听者Listener(接⼝) ActionListener,WindowListener,...class A implements ActionListener{public void actionPerformed(ActionEvent e){....}}A lis=new A();4)、事件处理函数public void actionPerformed(ActionEvent e){....}事件流程:事件源触发事件-->事件源侦听者接收事件-->⾃动调⽤相应事件处理函数.实践编程1.在应⽤程序窗体中安排1个⽂本框,⼀个标签。
Java图形用户界面:Swing和JavaFX的简单介绍在计算机科学领域中,图形用户界面(GUI)是指通过图形、图像和视觉元素来与计算机程序进行交互的界面。
Java作为一种广泛使用的编程语言,提供了多种选择来构建图形用户界面。
其中,Swing和JavaFX是最常用的两种选择。
本文将对这两种Java GUI工具进行简单介绍,并探讨它们的特点和用途。
一、SwingSwing是Java提供的一套GUI工具包,旨在提供一种跨平台的解决方案。
它是在AWT(抽象窗口工具包)的基础上开发的,为开发者提供了一系列可重用的GUI组件,如按钮、文本框、标签等。
Swing的特点之一是其轻量级性能,它不依赖于操作系统的原生GUI组件,而是完全由Java代码实现。
这使得Swing应用程序可以在不同操作系统上以相同的方式运行,而无需进行任何修改。
Swing提供了丰富的组件库,使得开发者可以轻松构建复杂的用户界面。
它还支持可定制的外观和感觉,开发者可以根据自己的需求选择不同的外观主题。
此外,Swing还提供了一些高级组件,如表格、树形结构和滚动面板,使得开发者可以创建更复杂和功能强大的界面。
然而,Swing也有一些缺点。
由于其完全由Java代码实现的特性,Swing应用程序可能在性能方面存在一些问题。
尤其是在处理大量数据或复杂图形时,Swing的性能可能会受到影响。
此外,Swing的外观和感觉可能与操作系统的原生界面存在一些差异,这可能会对用户体验造成一定的影响。
二、JavaFXJavaFX是Java平台上的另一种GUI工具,它提供了更现代化和富有表现力的用户界面。
与Swing不同,JavaFX使用了一种基于场景图的方式来构建界面。
它通过使用FXML(一种基于XML的用户界面描述语言)和CSS(层叠样式表)来分离界面的结构和样式,使得界面的定制变得更加灵活和简单。
JavaFX提供了许多内置的UI组件,如按钮、文本框、标签等,这些组件具有更丰富的视觉效果和交互特性。
第4章图形用户界面设计本章要点● Java图形用户界面设计的基本知识●布局管理器的应用● Java常用图形用界面设计组件的应用● Java常用组件事件处理的应用4.1 认识AWT包和Swing包用户界面是计算机用户与软件之间的交互接口。
一个功能完善,使用方便的用户界面可以使软件的操作更加简单,使用户与程序之间的交互更加有效。
因此图形用户界面(graphics user interface,GUI)的设计和开发已经成为软件开发中的一项重要的工作。
Java语言提供的开发图形用户界面(GUI)的功能包括AWT(Abstract Window Toolkit)和Swing两部分。
这两部分功能由Java的两个包来完成-awt和swing。
虽然这两个包都是用于图形用户界面的开发,但是它们不是同时被开发出来了。
awt包是最早被开发出来的。
但是使用awt包开发出来的图形用户界面并不完美,在使用上非常的不灵活。
比如awt包所包含的组件,其外观是固定的,无法改变,这就使得开发出来的界面非常死板。
这种设计是站在操作系统的角度开发图形用户界面,主要考虑的是程序与操作系统的兼容性。
这样做的最大问题就是灵活性差,而且程序在运行时还会消耗很多系统资源。
由于awt包的不足表现,SUN公司于1998年针对它存在的问题,对其进行了扩展,开发出了Swing,即swing包。
但是,SUN公司并没有让swing包完成替代awt包,而是让这两个包共同存在,互取所需。
awt包虽然存在缺点,但是仍然有可用之处,比如在图形用户界面中用到的布局管理器、事件处理等依然采用的是awt包的内容。
Java有两个主要类库分别是Java包和Javax包。
在Java包中存放的是Java语言的核心包。
Javax包是Sun公司提供的一个扩展包,它是对原Java包的一些优化处理。
swing包由于是对awt包的扩展和优化,所以是存放在Javax包下的,而awt包是存放在Java包下的。
java图形用户界面实验报告
《Java图形用户界面实验报告》
一、实验目的
本次实验旨在通过使用Java图形用户界面(GUI)工具,掌握Java程序设计的
基本原理和方法,加深对Java语言的理解和应用。
二、实验内容
1. 使用Java的Swing和AWT等图形用户界面工具,设计一个简单的窗口界面。
2. 在窗口中添加按钮、文本框、标签等组件,并实现相应的事件处理。
3. 编写Java代码,实现窗口界面的布局和交互功能。
三、实验步骤
1. 首先,创建一个新的Java项目,并新建一个窗口类。
2. 在窗口类中使用Swing和AWT工具,设计窗口界面,并添加所需的组件。
3. 编写事件处理方法,实现按钮点击、文本框输入等操作的响应。
4. 调试和运行程序,检查窗口界面的布局和功能是否符合预期。
四、实验结果
经过一系列的编码和调试,最终实现了一个简单的Java图形用户界面程序。
该
程序具有良好的界面布局和交互功能,用户可以通过按钮点击和文本框输入进
行相应的操作。
五、实验总结
通过本次实验,我深入理解了Java图形用户界面的设计原理和实现方法,掌握
了Swing和AWT等GUI工具的使用技巧。
在今后的学习和工作中,我将继续
加强对Java编程的实践,不断提升自己的技能水平,为今后的软件开发工作打
下坚实的基础。
j a v a图形化界面练习及答案As a person, we must have independent thoughts and personality.作业标题:第四次练习题(总分:得分:分)一、单选题(共有题目15题,共计分)1.下列属于容器的组件有A.JButtonB.JPaneC.CanvasD.JTextArea学生的答案: B标准答案: B该题分数:学生得分: 分2.下列方法中,不属于WindowListener接口的是A.windowOpened()B.windowClosed()C.windowActivated()D.windowAdapter学生的答案: D标准答案: D该题分数:学生得分: 分3.下列不属于Swing中组件的是( )。
A.JPanelB.JTableC.MenuD.JFrame学生的答案: C标准答案: C该题分数:学生得分: 分4.以下Swing组件中哪一个不是顶层容器组件( )。
A.框架B.对话框C.面板D.小程序学生的答案: C标准答案: A该题分数:学生得分: 0分5.对于Swing基本控件单选框,若要使两个单选框对象之间具有相互排斥的关系,需要( )。
A.创建两个单选框对象时定义相同的对象名B.将两个单选框对象放在同一个面板上C.定义一个ButtonGroup对象group,将两个单选框对象加到group中D.让两个单选框排成一行或一列学生的答案: C标准答案: C该题分数:学生得分: 分6.容器被重新设置大小后,( )布局管理器的容器中的组件大小不随容器大小的变化而改变。
A.CardLayoutB.FlowLayoutC.BorderLayoutD.GridLayout学生的答案: B标准答案: B该题分数:学生得分: 分7.下列哪个类创建的对象可以触发ActionEvent事件( )。
A.类B.包的子类C.类D.类学生的答案: A标准答案: A该题分数:学生得分: 分8.下列叙述中哪个是正确的( )A.不是任何组件都可以触发MouseEvent事件B.处理WindowEvent事件的接口是FocusListenerC.类实现了MouseListener接口D.是一个接口学生的答案: C标准答案: C该题分数:学生得分: 分9.在基于Swing的图形用户界面设计中,面板属于( )。
图形用户界面(gui)图形用户界面(GUI)9.1 Java图形用户界面概述顾名思义,图形用户界面(Graphics UserInterface,缩写GUI)是指以图形的显示方式与用户实现交互操作的应用程序界面。
Java提供了十分完善的图形用户界面功能,使得软件开发人员可以轻而易举地开发出功能强大、界面友善、安全可靠的应用软件。
在Java语言中,有两个包(java.awt和javax.swing)囊括了实现图形用户界面的所有基本元素,这些基本元素主要包括容器、组件、绘图工具和布局管理器等。
组件是与用户实现交互操作的部件,容器是包容组件的部件,布局管理器是管理组件在容器中布局的部件,绘图工具是绘制图形的部件。
这里的“awt”是抽象窗口工具包(Abstract Windowing Toolkit)的缩写,其中的组件常被称为AWT 组件。
其中的组件常被称为AWT 组件。
它主要改善了组件的显示外观,增强了组件的控制能力。
在Java中,设计用户界面需要经历4个基本步骤:(1)创建和设置组件(2)将组件加入到容器中(2)将组件加入到容器中(3)布局组件(4)处理由组件产生的事件9.2 用AWT创建图形用户界面AWT是抽象窗口工具包,其中涵盖了Java API为开发Java应用程序提供的创建图形用户界面的工具集,它包含了用户界面的各种组件、事件处理模型、图形界面的各种组件、事件处理模型、图形和图像处理工具、布局管理器、数据传输、剪切和粘贴操作等功能,使得在Java环境中可以比较轻松地设计出具有良好的用户交互界面的应用程序。
9.2.1 AWT概述AWT是Java基础类库JFC(Java FoundationClass)的一个重要组成部分,它位于java.awt包中,其中不仅包含了与显示界面有关的各种组件,还包含了一些子包,主要提供了色彩控制、数据传输、事件处理模型、拖放功能、字制、数据传输、事件处理模型、拖放功能、字体设置、打印管理、图像处理等技术支持。
4图形用户界面4.1单项选择题1. 如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是()A、(b);B、(b,"NORth");C、(b,"South");D、(p,"North");2.JPanel的默认布局管理器是()。
A.FlowLayout B.CardLayout C.BorderLayout D.GridLayout3.容器类的父类是()。
A.B.C.D.哪一个布局管理器使用的是组件的最佳尺寸()A.FlowLayout B.BorderLayout C.GridLayout D.CardLayout5.关于AWT和Swing说法正确的是()。
A.Swing是AWT的子类B.AWT在不同操作系统中显示相同的风格C.AWT不支持事件模型D.Swing在不同的操作系统中显示相同的风格6.关于使用Swing的基本规则,下列说法正确的是()。
A.Swing组件可直接添加到顶级容器中B.要尽量使用非Swing的重要级组件C.Swing的JButton不能直接放到JFrame上D.以上说法都对7.在Java编程中,Swing包中的组件处理事件时,下面()是正确的。
A.Swing包中的组件也是采用事件的委托处理模型来处理事件的B.Swing包中的组件产生的事件类型,也都带有一个J字母,如JMouseEventC.Swing包中的组件也可以采用事件的传递处理机制D.Swing包中的组件所对应的事件适配器也是带有J字母的,如JMouseAdapter8.能将容器划分为"East"、"South"、"West"、"North"、"Center"五个区域的布局管理器是()A)BorderLayout B)FlowLayoutC)GridLayout D)CardLayout9. 如果有一个对象myListener ( 其中myListener 对象实现了ActionListener 接口), 下列哪条语句使得myListener 对象能够接受处理来自于smallButton按钮对象的动作事件A. (myListener);B. (myListener);C. (myListener);D. (myListener);10. 下列各种布局管理器中Window类、JDialog类和JFrame类的默认布局是()A.FlowLayout B.CardLayout C.BorderLayout D.GridLayout11. JFrame对象默认的布局管理器是()A、FlowLayoutB、BorderLayoutC、CardLayoutD、null12. 在下列各种容器中,最简单的无边框的又不能移动和缩放的只能包含在另一种容器中的容器是()A.Window B.JDialog C.JFrame D.JPanel13 下列关于组件类的描述中,错误的是()A.组件类中包含了文本组件类(TextComponent)和菜单组件类(MenuComponent)B.标签(JLabel)和按钮(JButton)是组件类(Component)的子类C.面板(JPanel)和窗口(Window)是容器类(Container)的子类D.文本框(JTextField)和文本区(JTextArea)是文本组件类(JTextComponent)的子类14 在对下列语句的解释中,错误的是()(this);A.but是某种事件对象,如按钮事件对象B.this表示当前容器C.ActionListener是动作事件的监听者D.该语句的功能是将but对象注册为this对象的监听者15. 下列关于菜单和对话框的描述中,错误的是()A.JFrame容器是可以容纳菜单组件的容器B.菜单条中可包含若干个菜单,菜单中又可包含若干菜单项,菜单项中还可包含菜单子项C.对话框内不可以含有菜单条D.对话框与JFrame一样都可作为程序的底层容器16. 所有GUI标准组件类的父类是()A.JButtom B.List C.Component D.Container17.4.2填空题1.在需要自定义Swing构件的时候,首先要确定使用那种构件类作为所定制构件的______,一般继承Jpanel类或更具体的Swing类.2.Swing的事件处理机制包括__________、事件和事件处理者。
《Java语言程序设计》实验报告private JButton button_1,button_2,button_add,button_clear;public Simcal(){super("Calculator");this.setBounds(300, 240, 320, 90);this.setResizable(false);this.setBackground(java.awt.Color.lightGray);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));text = new JTextField("",27);text.setHorizontalAlignment(JTextField.RIGHT);text.setEditable(false);caretUpdate(null);this.getContentPane().add(text);text.addCaretListener(this);//JPanel panel = new JPanel(new GridLayout(1,4));//this.getContentPane().add(panel);button_1 = new JButton("1");button_1.addActionListener(this);//panel.add(button_1);this.getContentPane().add(button_1);button_add = new JButton("+");button_add.addActionListener(this);//panel.add(button_add);this.getContentPane().add(button_add);button_2 = new JButton("2");button_2.addActionListener(this);//panel.add(button_2);this.getContentPane().add(button_2);button_clear = new JButton("C");button_clear.addActionListener(this);//panel.add(button_clear);this.getContentPane().add(button_clear);this.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==button_1){text.setText(text.getText()+"1");}if(e.getSource()==button_add){text.setText(text.getText()+"+");}if(e.getSource()==button_2){text.setText(text.getText()+"2");}if(e.getSource()==button_clear){text.setText("");}}public void caretUpdate(CaretEvent e){}public static void main(String arg[]){new Simcal();}}运行结果:(2)计算器如果时间允许,实现计算器的加、减、乘、除等基本运算,参考如下图形界面。
第一题:
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Fahrenheit {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame = new JFrame("Fahrenheit");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); FahrenheitPanel panel = new FahrenheitPanel();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
class FahrenheitPanel extends JPanel
{
private JLabel inputLabel,outputLabel,resultLabel;
private JButton OK;
private JTextField fahrenheit;
public FahrenheitPanel()
{
inputLabel = new JLabel("Enter Fahrenheit temperature:");
outputLabel = new JLabel("Temperature in Celsius:");
resultLabel = new JLabel("---");
OK = new JButton ("OK!");
fahrenheit = new JTextField(5);
fahrenheit.addActionListener(new TempListener());
OK.addActionListener(new TempListener());
add(inputLabel);
add(fahrenheit);
add(outputLabel);
add(resultLabel);
add(OK);
setPreferredSize (new Dimension(300,75));
setBackground(Color.green);
}
private class TempListener implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
int fahrenheitTemp,celsiusTemp;
String text = fahrenheit.getText();
fahrenheitTemp = Integer.parseInt(text);
celsiusTemp = (fahrenheitTemp-31)*5/9;
resultLabel.setText(Integer.toString(celsiusTemp));
}
}
}
第二题:
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Random {
/**
* @param args
*/
public static void main(String[] args) {
JFrame frame = new JFrame("Random game ");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); RandomPanel panel = new RandomPanel();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
class RandomPanel extends JPanel
{
private JLabel resultLabel;
private int randomNumber;
private JButton OK;
public RandomPanel()
{
resultLabel = new JLabel("---");
OK= new JButton("确定!");
OK.addActionListener(new ButtonListener());
add(resultLabel);
add(OK);
setPreferredSize(new Dimension(300,100));
setBackground(Color.blue);
}
private class ButtonListener implements ActionListener {
private final int BASE = 100;
public void actionPerformed(ActionEvent event)
{
String result = ("you get:"+randomNumber);
randomNumber=(int)(Math.random()*BASE+1);
resultLabel.setText(result);
}
}
}
第三题:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class UpDown
{
public static void main(String[] args) {
JFrame frame=new JFrame("ChangeData ");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new ChangeData() );
frame.pack();
frame.setVisible(true);
}
}
class ChangeData extends JPanel
{
/**
*
*/
private int count;
private JButton up,down;
private JLabel label;
private JPanel buttonPanel;
public ChangeData()
{
count=50;
up=new JButton("Up");
down=new JButton("Down");
up.addActionListener(new ButtonListener());
down.addActionListener(new ButtonListener());
label=new JLabel("data: "+count);
buttonPanel=new JPanel();
buttonPanel.setPreferredSize(new Dimension(300,40));
buttonPanel.setBackground(Color.red);
buttonPanel.add(up);
buttonPanel.add(down);
setPreferredSize(new Dimension(300,60));
setBackground(Color.green);
add(label);
add(buttonPanel);
}
public class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
if(event.getSource()==up)
{count+=1;
label.setText("Up: "+count);}
else
{
count-=1;
label.setText("Down"+count);
}
}
}
}。