「java实现图形界面」java设计图形化界面

博主:adminadmin 2022-12-02 02:20:08 113

本篇文章给大家谈谈java实现图形界面,以及java设计图形化界面对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java中建立图形界面的一般步骤(模式)是什么

import java.swing.*;import java.awt.*;import java.awt.event.*; //图形类导入 public class 类名{ public class 类名 extends JFrame implements ActionListener{ //监听 JPanel jp = new JPanel(); //创建双缓冲和流布局 JTextField txtfile=new JTextField(10); //单行文本编辑 JLabel jb = new JLable(); //用于短文本字符串或图像或二者的显示区 public 类名() { }//构造函数 public void actionPerformed(ActionEvent e) { } } public static void main(String args[]) { new 类名(); }//实现} awt和swing 的类很多 其他的你自己查查API 吧,给你一个简单的框架

Java编写一个图形界面

我觉得还是我的好些。。。

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import java.awt.Toolkit;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.io.FileOutputStream;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

public class TestSwing extends JFrame{

private JLabel label1, label2, label3, label4,label5,label6,label7;

private JPanel panel,panel1,panel2;

private JTextField tField1,tField2,tField3,tField4,tField5,tField6,tField7,tField8,tField9;

private JButton button;

private String filepath="c:\\info.dat";

public TestSwing(){

init();

this.setSize(300, 280);

this.setLocation(

(Toolkit.getDefaultToolkit().getScreenSize().width - this

.getSize().width) / 2,

(Toolkit.getDefaultToolkit().getScreenSize().height - this

.getSize().height) / 2);

this.setResizable(false);

this.setVisible(true);

this.setTitle("info");

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void init(){

initPanel();

initLabel();

initTextField();

initButton();

initContent();

}

private void initContent(){

panel1.add(label1);

panel1.add(tField1);

panel1.add(label2);

panel1.add(tField2);

panel1.add(label3);

panel1.add(tField3);

panel1.add(label4);

panel1.add(tField4);

panel1.add(label5);

panel1.add(tField5);

panel1.add(label6);

panel1.add(tField6);

panel1.add(label7);

panel1.add(tField7);

panel1.add(tField8);

panel1.add(tField9);

panel2.add(button);

panel.add(panel1,BorderLayout.CENTER);

panel.add(panel2,BorderLayout.SOUTH);

getContentPane().add(panel);

}

private void initPanel(){

panel = new JPanel();

panel.setLayout(new FlowLayout());

panel.setBackground(Color.WHITE);

panel1 = new JPanel();

GridLayout upLayout = new GridLayout(8, 2);

panel1.setLayout(upLayout);

panel2 = new JPanel();

panel2.setLayout(new FlowLayout());

}

private void initLabel(){

label1 = new JLabel("IP地址", SwingConstants.LEFT);

label2 = new JLabel("端口", SwingConstants.LEFT);

label3 = new JLabel("访问地址", SwingConstants.LEFT);

label4 = new JLabel("XXXXX", SwingConstants.LEFT);

label5 = new JLabel("XXXXX", SwingConstants.LEFT);

label6 = new JLabel("XXXXX", SwingConstants.LEFT);

label7 = new JLabel("XXXXX", SwingConstants.LEFT);

}

private void initTextField(){

tField1 = new JTextField(10);

tField2 = new JTextField(10);

tField3 = new JTextField(10);

tField4 = new JTextField(10);

tField5 = new JTextField(10);

tField6 = new JTextField(10);

tField7 = new JTextField(10);

tField8 = new JTextField(10);

tField9 = new JTextField(10);

}

private void initButton(){

button = new JButton("完成");

button.addMouseListener(new MouseAdapter(){

//左键点击

public void mouseClicked(MouseEvent e) {

String ipv = tField1.getText().trim();

String portv = tField2.getText().trim();

String addrv = tField3.getText().trim();

String xx1v = tField4.getText().trim();

String xx2v = tField5.getText().trim();

String xx3v = tField6.getText().trim();

String xx4v = tField7.getText().trim();

String inputx = tField8.getText().trim();

String inputxv = tField9.getText().trim();

createFile(ipv, portv, addrv, xx1v, xx2v, xx3v, xx4v, inputx, inputxv);

JOptionPane.showMessageDialog(null, "保存成功");

tField1.setText("");

tField2.setText("");

tField3.setText("");

tField4.setText("");

tField5.setText("");

tField6.setText("");

tField7.setText("");

tField8.setText("");

tField9.setText("");

}

});

}

public static void main(String[]args){

new TestSwing();

}

private void createFile(String ipv,String portv ,String addrv,String xx1v,String xx2v,String xx3v,String xx4v,String inputx,String inputxv){

StringBuffer context = new StringBuffer();

context.append("ip=").append(ipv).append("\n");

context.append("port=").append(portv).append("\n");

context.append("addr=").append(addrv).append("\n");

context.append("xx1=").append(xx1v).append("\n");

context.append("xx2=").append(xx2v).append("\n");

context.append("xx3=").append(xx3v).append("\n");

context.append("xx4=").append(xx4v).append("\n");

context.append(inputx).append("=").append(inputxv).append("");

FileOutputStream fos = null;

try {

fos = new FileOutputStream(filepath);

fos.write(context.toString().getBytes());

} catch (Exception e) {

} finally {

if (fos != null)

try {

fos.close();

} catch (Exception e) {

}

}

}

}

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编写图形界面的Application程序

java编写图形界面需要用到swing等组件,可以在eclipse中安装windowbuilder来开发窗体,自动生成窗体代码,然后自己再根据需要修改,如:

package mainFrame;

import java.awt.EventQueue;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JCheckBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

import javax.swing.UIManager;

import javax.swing.UnsupportedLookAndFeelException;

import javax.swing.border.EmptyBorder;

public class Mian_login extends JFrame {

private JPanel contentPane;

private JTextField text_LoginName;

private JPasswordField Login_password;

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

@Override

public void run() {

try {

Mian_login frame = new Mian_login();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

/**

* Create the frame.

*/

public Mian_login() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(500, 200, 443, 300);

setResizable(false);

setTitle("登 录");

/*获取系统按钮样式*/

String lookAndFeel = UIManager.getSystemLookAndFeelClassName();

try {

UIManager.setLookAndFeel(lookAndFeel);

} catch (ClassNotFoundException e1) {

e1.printStackTrace();

} catch (InstantiationException e1) {

e1.printStackTrace();

} catch (IllegalAccessException e1) {

e1.printStackTrace();

} catch (UnsupportedLookAndFeelException e1) {

e1.printStackTrace();

}

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

contentPane.setLayout(null);

JPanel panel = new JPanel();

panel.setOpaque(false);

panel.setBounds(0, 0, 434, 272);

contentPane.add(panel);

panel.setLayout(null);

JButton btn_Login = new JButton("\u767B\u5F55");

btn_Login.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

}

});

btn_Login.setBounds(88, 195, 70, 23);

panel.add(btn_Login);

JButton btn_cancel = new JButton("\u53D6\u6D88");

btn_cancel.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

dispose();

}

});

btn_cancel.setBounds(268, 195, 70, 23);

panel.add(btn_cancel);

JLabel lblNewLabel_name = new JLabel("\u7528\u6237\u540D");

lblNewLabel_name.setHorizontalAlignment(SwingConstants.CENTER);

lblNewLabel_name.setOpaque(true);

lblNewLabel_name.setBounds(88, 48, 70, 23);

panel.add(lblNewLabel_name);

JLabel lblNewLabel_passwd = new JLabel("\u5BC6\u7801");

lblNewLabel_passwd.setHorizontalAlignment(SwingConstants.CENTER);

lblNewLabel_passwd.setOpaque(true);

lblNewLabel_passwd.setBounds(88, 102, 70, 23);

panel.add(lblNewLabel_passwd);

JCheckBox chckbx_remember = new JCheckBox("\u8BB0\u4F4F\u5BC6\u7801");

chckbx_remember.setBounds(102, 150, 84, 23);

panel.add(chckbx_remember);

text_LoginName = new JTextField();

text_LoginName.setBounds(182, 48, 156, 23);

panel.add(text_LoginName);

text_LoginName.setColumns(10);

Login_password = new JPasswordField();

Login_password.setBounds(182, 102, 156, 23);

panel.add(Login_password);

JCheckBox chckbx_AutoLogin = new JCheckBox("\u81EA\u52A8\u767B\u5F55");

chckbx_AutoLogin.setBounds(233, 150, 84, 23);

panel.add(chckbx_AutoLogin);

JLabel Label_background = new JLabel("");

Label_background.setIcon(new ImageIcon("E:\\JAVA_workplace\\0002-\u754C\u9762\u8BBE\u8BA1\\images\\background3.jpg"));

Label_background.setBounds(0, 0, 437, 272);

contentPane.add(Label_background);

}

}

Java编写图形用户界面程序

运行如图

参考代码如下

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class RegDemo extends JFrame implements ActionListener{

JTextField jtf;

JPasswordField jpf;

public RegDemo() {

        //组件的创建, 和布局安排

JPanel jpc = new JPanel();//默认流式布局

JPanel jp1 = new JPanel(new GridLayout(2, 2,5,10));//网格布局

jp1.setBorder(BorderFactory.createTitledBorder("用户注册"));

JLabel jl1 = new JLabel("用户名:");

jtf = new JTextField(10);

JLabel jl2 = new JLabel("密码:");

jpf = new JPasswordField(10);

                jpf.setEchoChar('*');//用*号来隐藏密码的显示

jp1.add(jl1);jp1.add(jtf);

jp1.add(jl2);jp1.add(jpf);

jpc.add(jp1);

add(jpc);

JButton jb1 = new JButton("提交");

jb1.addActionListener(this);

jb1.setActionCommand("yes");

JButton jb2 = new JButton("取消");

jb2.addActionListener(this);

jb2.setActionCommand("no");

JPanel jp2 = new JPanel();

jp2.add(jb1);jp2.add(jb2);

add(jp2,BorderLayout.SOUTH);

setTitle("用户注册界面");

        setSize(280, 280);

        setLocationRelativeTo(null);//窗口居中

        setDefaultCloseOperation(EXIT_ON_CLOSE);//

        setVisible(true);

}

public static void main(String[] args) {

new RegDemo();

}

@Override

public void actionPerformed(ActionEvent e) {

if(e.getActionCommand().equals("yes")){

String name  = jtf.getText().trim();

String pwd = new String(jpf.getPassword());

if(name.equals("")||pwd.equals("")){

JOptionPane.showMessageDialog(this, "你还没有输入用户名或者密码");

}else{

JOptionPane.showMessageDialog(this, "注册成功!用户名"+name+",密码"+pwd);

}

}else{

jtf.setText("");

jpf.setText("");

}

}

}

关于java实现图形界面和java设计图形化界面的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-02,除非注明,否则均为首码项目网原创文章,转载请注明出处。