自学Java-day09
Java GUI编程
一、JOptionPane中的方法
1.弹出信息框:
showMessageDialog(parentComponent,“信息”);
显示一个消息对话框,用来提示信息。
showConfirmDialog(parentComponent,“信息”);
显示一个确认对话框,用户选择后,根据返回的结果进行判断。
showMessageDialog(parentComponent,“信息”);
显示一个信息输入对话框,作用是用来保存用户输入的信息。
2.鼠标事件
- mouseClicked(MouseEvent e);监听鼠标点击事件的操作
- mousePressed(MouseEvent e); 监听鼠标按下事件的操作
- mouseReleased(MouseEvent e); 监听鼠标抬起事件的操作
- mouseEntered(MouseEvent e); 监听鼠标进入事件的操作
- mouseExited(MouseEvent e); 监听鼠标离开事件的操作
鼠标点击时执行的顺序是:mousePressed–>mouseReleased–>mouseClicked(判断按下与抬起是否在同一位置,在则执行)
3.MouseEvent()
getX():得到鼠标的横向位置坐标;
getY():得到鼠标的纵向位置坐标。
4.Graphics
- drawString(“”,x, y):绘制字符串;
- drawOval(x, y, width,height):绘制一个空心圆形;x和y为圆的外切正方形左上角点的坐标;
- fillOval(x, y, width,height):绘制一个实心圆形;
- drawLine(x1, y1, x2,y2):绘制直线,x1,y1为起点坐标;x2,y2为起点坐标;
- drawRect(x, y, width,height):绘制空心矩形;
- fillRect(x, y, width, height):绘制实心矩形;
- drawImage():绘制一个已经存在的图片(将一个图片之间显示到窗体中);
- 通过ImageIO输入一个Bufferedlmage:将硬盘中的图片导入到窗口中;
- setColor():设置画笔颜色;
- setFont():设置绘制文字的字体;
setResizable():true 窗体大小可变;false窗体大小不可变;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
public class EnsteinFrame extends JFrame implements MouseListener{
public EnsteinFrame() {
this.setTitle("爱恩斯坦棋");
//设置窗体关闭
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//获取屏幕的大小
int width=Toolkit.getDefaultToolkit().getScreenSize().width;
int height=Toolkit.getDefaultToolkit().getScreenSize().height;
// System.out.println("屏幕的宽"+width);
// System.out.println("屏幕的高"+height);
//将界面控制在中心
int w=(width-1280)/2;
int h=(height-800)/2;
this.setBounds(w,h,1280,800);
//窗体大小设置不可改变
this.setResizable(false);
//鼠标点击事件
this.addMouseListener(this);
this.setVisible(true);
}
public void paint(Graphics g) {
BufferedImage image = null;
try {
image = ImageIO.read(new File("D:\\爱因斯坦棋\\爱因斯坦棋\\博弈平台1.0\\Background picture\\DotsAndBoxes.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
g.drawImage(image,0,0,this);
// g.setColor(Color.red);
// g.setFont(new Font("黑体",40,40));
// g.drawString("爱恩斯坦棋",100, 500);
// g.drawOval(20, 40, 40, 40);
// g.fillOval(20, 40, 40, 40);
// g.drawLine(20, 60, 80, 80);
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("点击位置: x-->"+ e.getX());
System.out.println("点击位置: y-->"+ e.getY());
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class EnsteinTest {
public static void main(String[] args) {
EnsteinFrame ef=new EnsteinFrame();
//弹出信息块
JOptionPane.showMessageDialog(ef, "我的信息");
int result=JOptionPane.showConfirmDialog(ef,"确认信息,现在要开始游戏吗?");
if(result==0) {
JOptionPane.showMessageDialog(ef, "游戏开始");
}
if(result==1) {
JOptionPane.showMessageDialog(ef, "游戏结束");
}
if(result==2) {
JOptionPane.showMessageDialog(ef, "请重新选择");
}
String username=JOptionPane.showInputDialog("请输入你的姓名:");
System.out.println(username);
JOptionPane.showMessageDialog(ef, "输入的姓名为:"+username);
}
}