- JFrame表示窗体
- JMenuBar表示菜单,JMenu表示菜单中的字,JMenuitem表示目录
- JLabel表示管理文字和图片的文字
- JFrame,JMenuBar,JLabel称为组件
- 利用空参构造对对象进行初始化:public 方法名(){}
- setsize()表示宽和高,setvisible(true或者false)表示窗体是否显示,true表示显示,false表示不显示
-
//设置页面标题
this.setTitle("拼图游戏1.0");
//设置界面置顶
this.setAlwaysOnTop(true);
//设置界面居中
this.setLocationRelativeTo(null);
//设置关闭模式:其中括号内填0-3,0代表什么都不做程序关闭,1代表默认关闭,2代表窗口全部关闭后程序关闭,3代表只要有一个窗口关闭程序关闭
this.setDefaultCloseOperation(3);
//让界面显示出来,建议写到最后
this.setVisible(true);
- 添加图片:
//ImageIcon表示照片存放路径,在把照片放到JLabel容器中
JLabel jLabel = new JLabel(new ImageIcon("D:\\拼图游戏\\.idea\\img\\图片"+number+".png"));
//设置照片位置,以作上角为坐标原点和位置
jLabel.setBounds(342*j,332*i,342,332);
//将照片添加到隐藏的组件框中
this.getContentPane().add(jLabel);ps:这里要注意先要将照片默认的中间位置取消,一般添加到界面初始化位置
//取消默认居中效果,只有这样照片才按照X,Y轴的形式添加组件
this.setLayout(null);
- 事件分为:事件源(按钮,窗体,图片等),事件(鼠标点击,划入等),绑定监听(执行了哪个动作,就执行哪个代码,有键盘监听(KeyListener),鼠标监听(MouseListener),动作监听:鼠标左键点击和空格(ActionListener))
- 动作监听:只能实现鼠标左键点击和空格,实现的两种方式:
//创建一个按钮对象
JButton jButton = new JButton("不要点我");
//设置位置和宽高
jButton.setBounds(0,0,100,90);
//给按钮添加动作监听
//将按钮添加到界面中去,这里的参数为实现类,因为只使用一次,我们使用匿名内部类
jButton.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("点击生效");
}
});
//把按钮添加到界面中
jFrame.getContentPane().add(jButton);这个是在测试类中直接书写
- 在Javaben中
public class MyActionListenter extends JFrame implements ActionListener {
JButton jButton = new JButton("点我啊");
JButton jButton1 = new JButton("在点击我啊");
public MyActionListenter() {
this.setSize(700, 700);
this.setTitle("点击我");
this.setAlwaysOnTop(true);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);
this.setLayout(null);
//创建一个按钮对象
jButton.setBounds(0, 0, 100, 100);
//在创建一个按钮对象
jButton1.setBounds(200, 200, 100, 100);
//给按钮添加事件
jButton.addActionListener(this);this代表本类中的地址
jButton1.addActionListener(this);
//把按钮添加到界面中
this.getContentPane().add(jButton);
this.getContentPane().add(jButton1);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
//对当前按钮进行判断
//获取当前被操作的那个按钮对象: e.getSource()
Object source = e.getSource();
if (source==jButton){
jButton.setSize(400,400);
}else if (source==jButton1){
Random random = new Random();
jButton1.setLocation(random.nextInt(500),random.nextInt(500));
}
}
}
- 鼠标事件可以分为 划入,划出,按住不放,松开,单击
public class MouseAction extends JFrame implements MouseListener {
//创建鼠标事件对象,写在成员变量位置
JButton jButton = new JButton("请你点击我");
public MouseAction(){
this.setSize(700, 700);
this.setTitle("点击我");
this.setAlwaysOnTop(true);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);
this.setLayout(null);
jButton.setBounds(0,0,100,100);
jButton.addMouseListener(this);
//添加到整个菜单中
this.getContentPane().add(jButton);
this.setVisible(true);
}
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("单击鼠标");
}
@Override
public void mousePressed(MouseEvent e) {
System.out.println("鼠标按住");
}
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("鼠标释放");
}
@Override
public void mouseEntered(MouseEvent e) {
System.out.println("鼠标划入");
}
@Override
public void mouseExited(MouseEvent e) {
System.out.println("鼠标划出");
}
}
- 键盘事件
public class KeyAction extends JFrame implements KeyListener {
public KeyAction(){
this.setSize(600,600);
this.setTitle("键盘点击事件");
this.setAlwaysOnTop(true);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);
this.setLayout(null);
this.addKeyListener(this);
this.setVisible(true);
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("按住不放");
}
@Override
public void keyReleased(KeyEvent e) {
System.out.println("按住放开");
//获取键盘键上的每一个编号
int keyCode = e.getKeyCode();
System.out.println(keyCode);
}
}
- return有两个作用:在方法中,如果没有返回值类型,是void,者表示结束当前方法,如果有返回值类型,则表示返回结果
- break表示结束switch循环和当前循环,而continue表示结束当次循环,并且continue后面的语句无法执行