java简单图形用户界面代码
- 格式:doc
- 大小:27.50 KB
- 文档页数:3
java用户登录界面的代码以下是一个简单的Java用户登录界面的代码示例,其中包括了GUI界面设计和用户验证的代码:```javaimport javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.JPasswordField;import javax.swing.JButton;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;public class LoginWindow extends JFrame implements ActionListener {private JLabel usernameLabel, passwordLabel;private JTextField usernameTextField;private JPasswordField passwordField;private JButton loginButton;public LoginWindow() {setTitle("用户登录");setSize(400, 200);setLocationRelativeTo(null);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);usernameLabel = new JLabel("用户名:");passwordLabel = new JLabel("密码:");usernameTextField = new JTextField();passwordField = new JPasswordField();loginButton = new JButton("登录");loginButton.addActionListener(this);setLayout(null);usernameLabel.setBounds(50, 30, 80, 25);passwordLabel.setBounds(50, 70, 80, 25);usernameTextField.setBounds(130, 30, 200, 25);passwordField.setBounds(130, 70, 200, 25);loginButton.setBounds(150, 120, 100, 25);add(usernameLabel);add(passwordLabel);add(usernameTextField);add(passwordField);add(loginButton);setVisible(true);}public void actionPerformed(ActionEvent e) {String username = usernameTextField.getText();String password = newString(passwordField.getPassword());if (isValidUser(username, password)) {System.out.println("用户登录成功!");// 在这里可以跳转到下一个界面} else {System.out.println("用户名或密码错误!");}}private boolean isValidUser(String username, String password) {// 在这里实现用户验证的代码// 比如查询数据库是否有该用户并且密码是否匹配等等// 如果验证成功则返回true,否则返回falsereturn false;}public static void main(String[] args) {new LoginWindow();}}```该代码创建了一个窗口界面,包括“用户名”和“密码”两个文本框,以及一个“登录”按钮。
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组件,如按钮、文本框、标签等,这些组件具有更丰富的视觉效果和交互特性。
JavaGUI编程创建漂亮的用户界面JavaGUI编程是一种强大的工具,它可以帮助开发者创建漂亮、直观的用户界面。
在本文中,我将为您介绍如何使用JavaGUI编程来设计和实现一个令人印象深刻的用户界面。
一、选择合适的图形库在开始编写JavaGUI程序之前,我们需要选择一个合适的图形库。
Java提供了多种图形库选项,包括Swing、JavaFX等。
在这里,我将以Swing为例进行演示。
二、设计用户界面设计用户界面是实现漂亮用户界面的第一步。
在设计过程中,我们应该考虑到用户的需求和使用习惯,使界面具有良好的可用性和可访问性。
以下是一些设计原则可以帮助您创建漂亮的用户界面:1. 简洁明了:界面应该简洁明了,避免过多的干扰元素和复杂的图形。
2. 色彩搭配:选择适合的颜色搭配,使界面看起来舒适和谐。
同时要注意颜色的对比度,以确保文字和界面元素的可读性。
3. 布局:合理的布局可以使界面更加整洁美观。
可以使用不同的布局管理器(如FlowLayout、GridBagLayout等)来帮助您实现布局。
4. 图标和图片:适当使用图标和图片可以增加界面的吸引力。
选择高质量的图标和图片,确保其分辨率和大小适合当前界面的需求。
5. 文字字体:选择易读的字体和合适的字号。
正文通常使用宋体、微软雅黑等,标题可以选择一些特殊的字体以增加视觉效果。
三、编写代码一旦您完成了用户界面的设计,接下来就是编写代码来实现这个界面。
下面是一个简单的示例,展示如何使用Swing来创建一个基本的用户界面。
```javaimport javax.swing.*;import java.awt.*;public class GUIExample {public static void main(String[] args) {JFrame frame = new JFrame("漂亮的用户界面");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 300);JPanel panel = new JPanel();panel.setLayout(new FlowLayout());JLabel label = new JLabel("欢迎使用漂亮的用户界面!");label.setFont(new Font("宋体", Font.BOLD, 18));JButton button = new JButton("点击我");button.setPreferredSize(new Dimension(100, 50));panel.add(label);panel.add(button);frame.getContentPane().add(panel);frame.setVisible(true);}}```上述代码演示了如何创建一个简单的用户界面,其中包括一个标签和一个按钮。
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编程的实践,不断提升自己的技能水平,为今后的软件开发工作打
下坚实的基础。
§5 Java 图形用户界面设计§5.1实验目的、内容及性质掌握 Java 的 GUI 设计技术,掌握 AWT 和 Swing 的应用技巧。
实验性质:验证、必做实验学时:2学时§5.2问题及思考1、最常见的AWT以及Swing控件用法。
2、几个常见布局总结3、区分容器控件和一般非容器控件4、Java事件几种关键组成部分以及事件处理流程§5.3实验指导1、Swing示例/*需要哪些组件,如何布局?*/import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyFrm extends JFrame{//从JFrame继承/*声明界面需要使用的控件*/JLabel lbl_name =new JLabel("用户名");JLabel lbl_pwd =new JLabel("密码");JTextField txt_name=new JTextField();JPasswordField txt_pwd=new JPasswordField();JButton btn_OK=new JButton("登陆");JButton btn_Cancel=new JButton("取消");/*在构造函数中将控件放置在JFrame上*/public MyFrm(){/*获取当前Frame的内容面板*/JPanel jp=(JPanel)this.getContentPane();/*设置内容面板的布局 Layout*/jp.setLayout(new GridLayout(3,2));jp.add(lbl_name);jp.add(txt_name);jp.add(lbl_pwd);jp.add(txt_pwd);jp.add(btn_OK);jp.add(btn_Cancel);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String arg[]){/*纯Java样式显示窗体*/JFrame.setDefaultLookAndFeelDecorated(true);/*实例化当前窗体类*/MyFrm frm=new MyFrm();frm.setSize(200,200);frm.setVisible(true);}}2、常用布局1)、流布局:FlowLayout 从左到右,自上而下方式在容器中排列,控件的大小不会随容器大小变化.容器.setLayout(new FlowLayout(FlowLayout.LEFT));2)、网格布局:GridLayout 按照指定行数与列数,将容器分成大小相等的单元格每个单元格放置一个控件. 不能将控件放在指定单元格容器.setLayout(new GridLayout(3,4,10,15));3)、边界布局:BorderLayout 将容器分成东、西、南、北、中五个部分容器.setLayout(new BorderLayout());窗口的内容面板默认布局就是边界布局。
JavaSwing图形用户界面的设计与实现方法一、引言随着计算机技术的不断发展,图形用户界面(Graphical User Interface,GUI)在软件开发中扮演着越来越重要的角色。
作为用户与软件之间的沟通桥梁,GUI的设计与实现至关重要。
本文将介绍JavaSwing图形用户界面的设计与实现方法,帮助开发人员更好地利用JavaSwing创建出功能强大、用户友好的GUI界面。
二、Swing概述JavaSwing是Java提供的一套GUI组件库,它基于Java AWT (Abstract Window Toolkit)构建而成,相对于AWT,Swing提供了更加丰富的组件和更高的灵活性。
Swing拥有独立于平台的外观,通过Java代码实现GUI界面的构建和事件处理。
使用Swing可以快速实现各种界面风格,并且易于调整和扩展。
三、Swing组件的使用1. 容器类组件:容器类组件是其他组件的父容器,对应于应用程序的窗口或面板,常用的容器类组件有JFrame、JPanel、JDialog等。
通过创建容器类组件,可以将其他组件添加到容器中并管理和布局。
2. 基本组件:基本组件是构建GUI界面的基本元素,常用的基本组件有JButton、JLabel、JTextField等。
它们可以用于实现用户输入、数据展示、按钮点击等交互操作。
3. 高级组件:高级组件是Swing提供的一些特殊功能的组件,如JTable、JTree、JFileChooser等。
它们可以用于展示表格、树状结构、文件选择等复杂的用户交互功能。
四、事件处理为了响应用户的操作,GUI界面需要进行事件处理。
在JavaSwing中,事件处理分为两个阶段:事件生成和事件响应。
当用户与界面进行交互时,会生成相应的事件,如按钮点击、鼠标移动等。
开发人员需要实现事件的监听器,并在事件发生时触发相应的操作。
五、界面布局界面布局是指组件在容器中的排列方式。
在Swing中,界面布局主要通过布局管理器(Layout Manager)实现。
国开《JAVA程序设计语言》形考第三任务代码与输出图片一、任务概述本次形考第三任务主要要求同学们运用JAVA程序设计语言,实现一个简单的图形用户界面(GUI),并通过代码输出相应的图片。
二、任务要求1. 请使用JAVA编程语言,实现一个GUI程序。
2. 在GUI程序中,展示一张图片。
3. 确保程序的运行环境为Windows操作系统。
4. 提交代码及输出图片。
三、任务步骤步骤1:创建GUI程序框架首先,我们需要使用JFrame创建一个窗口对象,作为我们的GUI程序的主界面。
import javax.swing.JFrame;public class ImageDisplay {public static void main(String[] args) {JFrame frame = new JFrame("图片展示");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(800, 600);// 添加图片展示组件frame.add(new ImagePanel());frame.setVisible(true);}}步骤2:创建图片展示组件接下来,我们需要创建一个继承自JPanel的类,用于展示图片。
import javax.swing.*;import java.awt.*;public class ImagePanel extends JPanel {private Image image;public ImagePanel() {// 从文件中加载图片image = new ImageIcon("path/to/image.jpg").getImage(); }@Override// 在组件上绘制图片g.drawImage(image, 100, 100, null);}}步骤3:运行并测试程序完成上述代码编写后,我们可以运行程序,并在窗口中查看输出的图片。
java中jpanel的用法Java中JPanel的用法JPanel是Java Swing库中的一个重要组件,它用于创建可视化的用户界面。
本文将介绍JPanel的几种常见用法,包括创建和初始化JPanel、添加组件到JPanel中以及设置JPanel的布局等。
1. 创建和初始化JPanel以下是创建和初始化JPanel的步骤:•导入JPanel类:在代码开头导入类,以便在程序中使用JPanel。
•创建JPanel对象:使用JPanel panel = new JPanel();语句创建一个新的JPanel对象。
•设置JPanel的尺寸和布局:可以使用(width, height);和(layout);方法来设置JPanel的尺寸和布局。
•将JPanel添加到容器中:使用容器的add(panel);方法将JPanel添加到容器中。
import ;public class MyPanel {public static void main(String[] args) {JPanel panel = new JPanel();(500, 300);(new FlowLayout()); // 使用FlowLayout布局// 添加其他组件到panel中// ...// 将panel添加到容器中// ...}}2. 添加组件到JPanel中JPanel通常用于容纳其他组件,例如按钮、文本框等。
可以使用(component);方法将组件添加到JPanel中。
以下是向JPanel中添加按钮和文本框的示例代码:import ;import ;import ;public class MyPanel {public static void main(String[] args) {JPanel panel = new JPanel();(500, 300);(new FlowLayout()); // 使用FlowLayout布局JButton button = new JButton("Click me");(button); // 添加按钮到panel中JTextField textField = new JTextField(10);(textField); // 添加文本框到panel中// 将panel添加到容器中// ...}}3. 设置JPanel的布局JPanel的布局决定了其内部组件的排列方式。
要创建一个简单的Java聊天窗口,您可以使用Java的图形用户界面(GUI)工具包Swing。
以下是一个基本的聊天窗口示例:```javaimport javax.swing.*;import java.awt.*;import java.awt.event.*;public class ChatWindow extends JFrame implements ActionListener {private JTextField inputField;private JTextArea chatArea;private String message = "";public ChatWindow() {super("简单聊天窗口");setSize(400, 300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);inputField = new JTextField();chatArea = new JTextArea();JButton sendButton = new JButton("发送");sendButton.addActionListener(this);JScrollPane scrollPane = new JScrollPane(chatArea);chatArea.setAutoscrolls(true);getContentPane().add(inputField,BorderLayout.SOUTH);getContentPane().add(sendButton, BorderLayout.EAST); getContentPane().add(scrollPane,BorderLayout.CENTER);}public void actionPerformed(ActionEvent e) {if (e.getSource() == sendButton) {message += inputField.getText() + "\n";chatArea.append(inputField.getText() + "\n");inputField.setText(""); // 清空输入框}}public static void main(String[] args) {ChatWindow chatWindow = new ChatWindow();}}```这个程序创建了一个简单的聊天窗口,用户可以在输入框中输入消息,然后点击"发送"按钮将消息发送到聊天区域。
实验三绘制图形一、实验目的学会JButton 的使用,能进行JButton 的基本操作,能使用JButton 结构一个图形界面框架经过实验熟习swing图形用户界面程序设计熟习java 中的事件办理模型,每个事件动作代表的意义进一步提升编程能力,学会独立思虑,学会上网查找资料决问题。
二、实验内容设计一个程序,该程序能够绘制基本的图形(包含圆形、矩形、直线等);要求有一个简单易操作的用户界面(包含菜单、按钮等组件)。
编写的程序要求能够实现保留和读取的功能。
三、实验代码import ;import ;import ;importimportimportimport winpaint.WinToolBar;import winpaint.windowsPaint;public class Main{/**@paramargs*/public static void main(String[]args){TODOAuto-generatedmethodstubJPanelpain tWin=newwindowsPaint("绘图");paintWin.setBounds(0,30,1000, 1000);paintWin.s etLayout(null);paintWin.s etVisible(tru);eJToolBarto ol=newWinToolBar((windowsPai nt)paintWin);tool.setBounds(0,0 ,1000,30);tool.setVi sible(true);JFramefram e=newJFram e();frame.setL ayout(null);frame.setV isible(true);frame.setBounds(0,0,1000,1000); frame.add(tool);frame.add(paintWin);}}importbase.GrapicsElem;importbase.Rect;publicclasstestfractor{/**@paramargs@throwsClassNotFoundException*/publicstaticvoidmain(String[]args)throwsClassNotFoundException{ TODOAuto-generatedmethodstubGrapicsElemGe=newRect();Class<?>demo1=null;Class<?>demo2=null;Class<?>demo3=null;try{// 一般尽量采纳这类形式demo1=Class.forName("base.Rect");Class<?>con= demo1.getSuperclass();demo2=Class.forName("base.GrapicsElem");Class<?>suns[]= demo2.getInterfaces();for(inti=0;i<suns.length;i++){}//GrapicsElemgg=(GrapicsElem)con[0].newInstance();con[0]);con[1]);con[2]);}catch(Exceptione){e.printStackTrace();}demo2=newRect().getClass();demo3=Rect.class;}}package base;importimportimportpublic abstract class GrapicsElem{Point start ;Point end;private Color color ;public ColorgetColor(){return color ;}p ubli c th is void setColor(Colorcolor){ .color =color;}publ ic th isvoid setStart(Pointstart){ .start =start;}publ ic th isvoid setEnd(Pointend){ .end=end;} publi c publ ic publ ic publ ic abstractabstractabstractabstractvoidvoidvoidvoiddoMousePress(Pointp);doMouseDrag(Pointp);doMouseRelease(Pointp);draw(Graphicsg);}package base; importimportimportpublicclassLineArrayList<Point>extendstrackGrapicsElem{;public Line(){track =newArrayList<Point>();}@Overridepublic void draw(Graphicsg){for (int i=0;i< track .size()-1;i++){Pointcur= track .get(i);Pointnext= track .get(i+1);}//}private voidAddPoint(Pointp){track .add(p);}@Overridepublic voiddoMousePress(Pointp){ TODOAuto-generatedmethodstubAddPoint (p);}@Overridepublic voiddoMouseDrag(Pointp){ TODOAuto-generatedmethodstubAddPoint (p);}//@Overridepublic voiddoMouseRelease(Pointp){TODOAuto-generatedmethodstubAddPoint(p);}}package base;importimportpublic class Rect extends GrapicsElem{int x,y,width ,height ;@Overridepublic void draw(Graphicsg){TODOAuto-generatedmethodstubg.drawRect(getX(),getY(),getWidth(),getHeight()); }@Overridepublic void doMousePress(Pointp){super.setStart(p);super.setEnd(p);}@Overridepublic void doMouseDrag(Pointp){super.setEnd(p);}@Overridepublic void doMouseRelease(Pointp){super.setEnd(p);}p ublicintgetX(){returnMath.min(start.x,end.x);}p ublicintgetY(){returnMath.min(start.y,end.y);}p ublicint getWidth(){ returnMath.abs(start.x-end.x);}p ublicint getHeight(){ returnMath.abs(start.y-end.y);}}package base;importpublic class Circle extends Rect{@Overridepublic void draw(Graphicsg){TODOAuto-generatedmethodstubg.drawOval(getX(),getY(),getWidth(),getHeight()); }}packagewinpaint;importbase.Circle;importbase.GrapicsElem;importbase.Line;importbase.Rect;publicclasswindowsPaintextendsJPanelimplementsMouseListener,MouseMotionListener{Stringcommand=" 矩形";List<GrapicsElem>Lg=newArrayList();GrapicsElemcur;JLabellabel;publicwindowsPaint(Stringtitle){init();}privatevoidinit(){addMouseListener(this);addMouseMotionListener(this);}/**能够使用反射去掉判断语句、Class<?>g=Class.forName("base.Rect");g.newInstance();@return*/privateGrapicsElemnewInstance(){command= mand;if(command.equals(" 矩形")){returnnewRect();}elseif(command.equals(" 圆形")){returnnewCircle();}elseif(command.equals(" 线")){returnnewLine();}returnnull;}//@Overridepublicvoidpaint(Graphicsg){TODOAuto-generatedmethodstubsuper.paint(g);//Graphics2Dg2d=(Graphics2D)g;//g2d.setColor(cur.getColor());g2d.setStroke(newBasicStroke(10.0f));for(inti=0;i<Lg.size();i++){GrapicsElemge=Lg.get(i);ge.draw(g);}}@Overridepublicvoidrepaint(){//TODOAuto-generatedmethodstub//// // //// //// //// //// //////TODOAuto-generatedmethodstub//super.repaint();Threadthread=newThread(newRunnable(){ @Overridepublicvoidrun(){//TODOAuto-generatedmethodstubtry{//////// //// ////SaveToFile();}catch(IOExceptione){//TODOAuto-generatedcatchblock e.printStackTrace();////}////}////thread.start();//////////// //// //// //// //// //// ////ImageIconbg=newImageIcon("tmp.jpg");if(bg!=null){if(label!=null)this.remove(label);label=newJLabel(bg);label.setBounds(0,0,bg.getIconWidth(),bg.getIconHeight()); this.add(label);super.repaint();////}//////}privatevoidSaveToFile()throwsIOException{TODOAuto-generatedmethodstubBufferedImagebimg=newBufferedImage(this.getWidth(),this.getHeight(),BufferedImage.T YPE_3BYTE_BGR);Graphics2Dg2d=bimg.createGraphics();this.paint(g2d);ImageIO.write(bimg,"jpg",newFile("tmp.jpg"));}@OverridepublicvoidmousePressed(MouseEvente){Pointp=newPoint(e.getX(),e.getY());cur=newInstance();cur.doMousePress(p);Lg.add(cur);}@OverridepublicvoidmouseDragged(MouseEvente){Pointp=newPoint(e.getX(),e.getY());cur.doMouseDrag(p);repaint();}@OverridepublicvoidmouseReleased(MouseEvente){Pointp=newPoint(e.getX(),e.getY());cur.doMouseRelease(p);repaint();}@OverridepublicvoidmouseMoved(MouseEvente){//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseClicked(MouseEvente){//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseEntered(MouseEvente){//TODOAuto-generatedmethodstub}@OverridepublicvoidmouseExited(MouseEvente){//TODOAuto-generatedmethodstub}}packagewinpaint;publicclassWinToolBarextendsJToolBarimplementsActionListener{publicstaticStringCo mmand="JButtonbtn1,btn2,btn3;//windowsPaintwinp; publicWinToolBar(windows PaintwinP){btn1=newJButton("矩形"); btn2=newJButton("圆形"); btn3=newJButton(" 线"); this.add(btn1);this.add(btn2);this.add(btn3);矩形";btn1.addActionListener((ActionListener)this);btn2.addActionListener((ActionListener)this);btn3.addActionListener((ActionListener)this);=winP;JComboBoxcom=newJComboBox();com.addItem("红色");com.addItem(" 蓝色");com.addItem(" 黑色");com.addItemListener(newItemListener(){@OverridepublicvoiditemStateChanged(ItemEvente){//TODOAuto-generatedmethodstub}});this.add(com);}@OverridepublicvoidactionPerformed(ActionEvente){TODOAuto-generatedmethodstubJButtonbtn=(JButton)e.getSource();btn.setBackground(Color.green);Com mand=btn.getActionCommand();}}三、实验结果。
Java图形化界⾯编程介绍⽬录1.内容概述2.容器Container2.1Window2.2Panel2.3ScrollPane2.4Box3.布局管理器3.1FlowLayout3.2BorderLayout3.3GridLayout3.4Cardlayout4.AWT基本组件5.事件处理6.开发⼀个简单计算器1.内容概述 先谈谈个⼈对图形化界⾯编程的认识,图形化界⾯编程可以直接的看到每⼀步操作带来的效果,相对于传统编程盯着⿊框框学起来是⾮常⾮常有意思的。
再谈谈最后的效果,界⾯是由窗⼝和组件构成的。
⽽组件在窗⼝内的排列并不是没有章法可⾔,依赖于布局管理器使组件以合适的位置以及合理的排布呈现。
排布于窗⼝内的组件⼜可以通过事件监听器与⽤户进⾏交互…2.容器Container 什么是容器?容器是特殊的组件。
容器是⽤来装东西的,不仅可以存放组件,也可以⽤来存放容器,⽽存放的容器⼜可以存放容器或组件。
听起来有点反复套娃,但学起来还是很容易的!2.1Window Window是可以独⽴存在的顶级窗⼝,其默认使⽤BorderLayout布局管理器。
frame.setLocation(500,300)⽅法⽤来设置窗⼝的位置,通常计算机的远点坐标在左上⾓。
frame.setSize(500,300)⽅法⽤来设置窗⼝的尺⼨。
frame.setVisible(true)设置窗⼝是否可见。
运⾏效果(使⽤Frame来创建⼀个窗⼝): 注意此时的窗⼝不能通过单击右上⾓的’X’关闭窗⼝,只能⼿动结束程序,因为还没有加⼊事件监听机制。
代码:import java.awt.*;public class WindowDemo {public static void main(String[] args) {//创建⼀个窗⼝对象Frame frame = new Frame("测试Window窗⼝");//指定窗⼝的位置和⼤⼩frame.setLocation(500,300);frame.setSize(500,300);//设置窗⼝可见frame.setVisible(true);}}2.2Panel Panel是内嵌式容器,必须内嵌于其它容器中使⽤,不能独⽴存在。