前面我们一直都是用控制台进行信息的输入输出来写Java程序
但是我们平常见到的程序都是有好看的界面的
你可能会想难道Java不能做界面???
放心,Java可以说是很强大的
它是可以做出来的,只不过用Java写Windows窗口程序都太麻烦了
所以用Java来写的不多
但是我还是要讲一下滴
好啦 开始
一、简介及简单演示
我们平时电脑用的软件能看到的界面其实就是GUI(Graphic User Interface 图形用户界面)
而Swing是一个用于开发Java应用程序用户界面的开发工具包
这里我们就演示下Swing的基本用法
代码如下:
package com.baidu.demo.test13;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Demo1 {
public static void main(String[] args) {
//主窗体
JFrame jFrame = new JFrame();
//主窗体的大小(宽,高)
jFrame.setSize(500,300);
//设置主窗体标题
jFrame.setTitle("测试");
//设置程序显示的位置(x,y)
//jFrame.setLocation(500,400);
//主窗体中的组件设置为绝对定位(不使用提供的任何布局)
jFrame.setLayout(null);
//窗口居中显示
jFrame.setLocationRelativeTo(null);
//按钮组件
JButton jButton = new JButton("点我变帅");
//设置按钮的位置(x,y)和宽高
jButton.setBounds(200, 100, 100, 50);
//将按钮加入到主窗体中
jFrame.add(jButton);
// 关闭窗体的时候,退出程序
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//使窗体可见
jFrame.setVisible(true);
}
}
运行结果:
二、事件监听
刚刚我们虽然写出来了窗口程序
但是我们会发现,我们点击创建的按钮什么反应都没有
那么怎么才可以让它有反应呢?
其实也不难
这个就关系到我们的事件监听
我们可以使用事件监听来监听这一个按钮的事件
比如监听到这个按钮被单击就运行那端代码…
除了按钮监听,还有键盘监听、鼠标监听
代码演示:
package com.baidu.demo.test13;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Demo2 {
public static void main(String[] args) {
//主窗体
JFrame jFrame = new JFrame();
//主窗体的大小(宽,高)
jFrame.setSize(500,300);
//设置主窗体标题
jFrame.setTitle("测试");
//设置程序显示的位置(x,y)
//jFrame.setLocation(500,400);
//主窗体中的组件设置为绝对定位(不使用提供的任何布局)
jFrame.setLayout(null);
//窗口居中显示
jFrame.setLocationRelativeTo(null);
//按钮组件
JButton jButton = new JButton("点我变帅");
//设置按钮的位置(x,y)和宽高
jButton.setBounds(200, 100, 100, 50);
//按钮监听
jButton.addActionListener(new ActionListener() {
// 当按钮被点击时,就会触发 ActionEvent事件
// actionPerformed 方法就会被执行
@Override
public void actionPerformed(ActionEvent e) {
//点击按钮后在控制台打印下面的信息
System.out.println("----------------------------------");
System.out.println("我最帅");
}
});
//键盘监听
jButton.addKeyListener(new KeyListener() {
//键被按下
@Override
public void keyPressed(KeyEvent e) {
System.out.println("---------------------------------");
System.out.println(e.getKeyChar()+"按键按下");
}
// 键被弹起
@Override
public void keyReleased(KeyEvent e) {
System.out.println(e.getKeyChar()+"按键弹起");
}
// 一个按下弹起的组合动作
@Override
public void keyTyped(KeyEvent e) {
System.out.println(e.getKeyChar()+"按下弹起的组合动作");
}
});
//鼠标监听
jFrame.addMouseListener(new MouseListener() {
// 释放鼠标
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("释放鼠标");
}
// 按下鼠标
@Override
public void mousePressed(MouseEvent e) {
System.out.println("按下鼠标");
}
// 鼠标退出
@Override
public void mouseExited(MouseEvent e) {
System.out.println("鼠标退出");
}
// 鼠标进入
@Override
public void mouseEntered(MouseEvent e) {
System.out.println("鼠标进入");
}
// 按下释放组合动作为点击鼠标
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("按下释放组合动作为点击鼠标");
}
});
//将按钮加入到主窗体中
jFrame.add(jButton);
// 关闭窗体的时候,退出程序
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//使窗体可见
jFrame.setVisible(true);
}
}
运行结果(这里大家自行测试哦):
三、适配器
举个例子:
MouseAdapter 鼠标监听适配器
一般说来在写监听器的时候,会实现MouseListener。
但是MouseListener里面有很多方法实际上都没有用到,比如mouseReleased ,mousePressed,mouseExited等等。
这个时候就可以使用 鼠标监听适配器,MouseAdapter 只需要重写必要的方法即可。
代码如下:
package com.baidu.demo.test13;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Demo3 {
public static void main(String[] args) {
//主窗体
JFrame jFrame = new JFrame();
//主窗体的大小(宽,高)
jFrame.setSize(500,300);
//设置主窗体标题
jFrame.setTitle("测试");
//设置程序显示的位置(x,y)
//jFrame.setLocation(500,400);
//主窗体中的组件设置为绝对定位(不使用提供的任何布局)
jFrame.setLayout(null);
//窗口居中显示
jFrame.setLocationRelativeTo(null);
//鼠标监听适配器
jFrame.addMouseListener(new MouseAdapter() {
//鼠标按下
@Override
public void mousePressed(MouseEvent e) {
System.out.println("鼠标按下");
}
});
// 关闭窗体的时候,退出程序
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//使窗体可见
jFrame.setVisible(true);
}
}
运行结果(点击鼠标后):
还有键盘监听也可以用适配器来写哦,这个你们自己试一下啦
由于Java并不常用来写Windows窗体应用
所以我就简单讲一下啦
还有各种控件的使用啊之类的都大同小异
我就不讲了
有兴趣的可以去手册里面看看学习下或者直接百度
还有就是软件的布局
Java有好几种布局,我也不讲了,感兴趣的看手册啦
整体来说,Java写窗体并不难,只要知道怎么布局、怎么使用各种控件、怎么进行事件监听…差不多也可以做一个软件出来了
你们可以试着写一个哦,反正是提升自我嘛,哈哈。
好啦,就这样吧
有问题QQ497099936
欢迎来撩骚
顾得白