java语言进行gui编程_java语言基础(99)——java--GUI(图形化界面)编程

GUI 全称 Graphical User Interface 译作 图形用户接口,为程序员编写图形界面的程序提供了接口。

java有关图形化接口的封装都在

java.awt (重量级接口,依赖本地系统移植性差,在不同系统下可能表现不同) 和

javax.swing(轻量级接口,完全由java实现,移植性强)包下。

图形界面编程我们需要掌握如下知识:

布局:流布局 网格布局等许多布局方式,请参考 LayoutManager 接口

组件: 文本框 按钮等都属于组件 请参考Component类

事件(监听): 鼠标事件 键盘事件 请参考 Event   MouseEvent MouseListener  KeyEvent  KeyListener

组件继承关系(常用,非完整继承图)

b1b7cf8565193cc0b3b84eb8aa468c6f.png

常用方法示例代码:

package GUIDemo;

import java.awt.Button;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.TextArea;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class TransDataDemo {

public static void main(String[] args) {

Frame f = new Frame();

//设置标题

f.setTitle("数据转移");

// 设置为流式布局(更多布局方式请参考LayoutManager)

f.setLayout(new FlowLayout());

//设置窗体可见 如果窗体里有很多组件 建议窗体的显示动作放在最后

f.setVisible(true);

//设置边距和宽高

f.setBounds(200,300,500,300);

// 创建一个文本框

final TextField tf = new TextField(20);

// 创建一个文本域

final TextArea ta = new TextArea(10,40);

//创建一个按钮

Button b = new Button("数据转移");

//设置按钮大小

b.setSize(20, 10);

// 给按钮添加点击事件

b.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

String s = tf.getText().trim();

ta.append(s+"\r\n");

tf.setText("");

//获取光标

tf.requestFocus();

}

});

//给窗体添加组件

f.add(tf);

f.add(b);

f.add(ta);

// 设置监听事件 使关闭按钮生效

f.addWindowListener(new WindowAdapter(){

@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

}

}

菜单组件的使用:

值得注意的是,在使用菜单组件的时候,必须结合菜单栏组件,菜单中的每一项叫菜单项,它们的关系是,菜单栏属于窗体,菜单属于菜单栏,菜单项属于菜单,而菜单下也可以添加菜单,这样就可以实现多级菜单的效果。

一级菜单示例代码:

package GUIDemo;

import java.awt.Frame;

import java.awt.Menu;

import java.awt.MenuBar;

import java.awt.MenuItem;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class MenuDemo {

public static void main(String[] args) {

Frame f = new Frame("菜单演示");

f.setBounds(300, 200, 300, 200);

// 菜单栏

MenuBar mb = new MenuBar();

// 菜单

Menu m = new Menu("文件");

// 菜单项

MenuItem mi = new MenuItem("新建");

MenuItem mi1 = new MenuItem("另存为");

MenuItem mi2 = new MenuItem("退出系统");

// 给菜单添加菜单项

m.add(mi);

m.add(mi1);

m.add(mi2);

// 给菜单栏添加菜单

mb.add(m);

// 给窗体添加菜单栏

f.setMenuBar(mb);

mi2.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

System.exit(0);

}

});

f.setVisible(true);

}

}

javaGUI图形界面 public class login extends JFrame { private JComboBox nameJComboBox; private JPanel userJPanel; private JLabel pictureJLabel; private JButton okJButton,cancelJButton; private JLabel nameJLabel,passwordJLabel,note; private JPasswordField passwordJPasswordField; private String name1; private String password1; private String user; private ImageIcon myImageIcon; public login( ) { createUserInterface(); // 调用创建用户界面方法 } private void createUserInterface() { Container contentPane = getContentPane(); contentPane.setLayout( null ); userJPanel = new JPanel(); userJPanel.setBounds( 35, 120, 300, 96 ); userJPanel.setBorder(BorderFactory.createEtchedBorder() ); //显示一圈边儿 userJPanel.setLayout( null ); contentPane.add( userJPanel ); nameJComboBox = new JComboBox(); nameJComboBox.setBounds( 100, 12, 170, 25 ); nameJComboBox.addItem( "admin" ); nameJComboBox.addItem( "aloie" ); nameJComboBox.setSelectedIndex( 0 ); nameJComboBox.setEditable(true); userJPanel.add( nameJComboBox ); pictureJLabel=new JLabel(); pictureJLabel.setBounds(45,0,380,118); pictureJLabel.setIcon(new ImageIcon("pic.gif")); contentPane.add(pictureJLabel); nameJLabel=new JLabel("姓 名:"); nameJLabel.setBounds(20,12,80,25); userJPanel.add(nameJLabel); passwordJPasswordField=new JPasswordField(); passwordJPasswordField.setBounds(100,60,170,25); userJPanel.add(passwordJPasswordField); passwordJLabel=new JLabel("密 码:"); passwordJLabel.setBounds(20,60,80,25); userJPanel.add(passwordJLabel); note=new JLabel("密码与用户名相同"); note.setBounds(0,295,180,25); add(note); okJButton=new JButton("登 陆"); okJButton.setBounds(60,250,80,25); contentPane.add(okJButton); okJButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { okJButtonActionPerformed(event); } } ); cancelJButton=new JButton("取 消"); cancelJButton.setBounds(210,250,80,25); contentPane.add(cancelJButton); cancelJButton.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent event ) { System.exit(0); //退出登陆 } } ); setTitle( "登陆窗口" ); setSize( 380, 350 ); setResizable( false ); //将最大化按钮设置为不可用 } private void okJButtonActionPerformed( ActionEvent event ) { //okJButton响应事件,检查用户名和密码的匹配 name1= nameJComboBox.getSelectedItem().toString(); if (name1.equals("admin") ) { if (passwordJPasswordField.getText().equals("admin")) { showNewWindow(); setVisible( false); } else { JOptionPane.showMessageDialog( this,"密码错误,拒绝登陆", "密码错误 !", JOptionPane.ERROR_MESSAGE ); } } else if (name1.equals("aloie")) { if ( passwordJPasswordField.getText().equals("aloie") ) { showNewWindow(); setVisible(false); } else { JOptionPane.showMessageDialog( this,"密码错误,拒绝登陆", "密码错误 !", JOptionPane.ERROR_MESSAGE ); } } } public void showNewWindow() { JFrame jf=new JFrame("main Frame"); jf.setSize(500,400); jf.setVisible(true); jf.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } public static void main( String[] args ) { JFrame.setDefaultLookAndFeelDecorated(true); login mylogin = new login( ); mylogin.setVisible( true ); mylogin.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值