窗体对象JFrame
package frame;
import javax.swing.*;
public class JFrameTest {
public static void main(String[] args) {
//创建窗体对象
JFrame jFrame = new JFrame();
//设置宽度和高度
jFrame.setSize(500,800);
//设置关闭模式
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//设置窗体标题
jFrame.setTitle("来自冰逸的第一个窗体!");
//设置窗体可见
jFrame.setVisible(true);
}
}
组件
按钮组件
JButton()创建一个没有设置文本或者图标按钮
JButton(String text) 创建一个带文本的按钮
package frame;
import javax.swing.*;
public class JFrameTest {
public static void main(String[] args) {
JFrame jFrame = new JFrame();
jFrame.setSize(500, 500);
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//取消窗体默认布局
jFrame.setLayout(null);
jFrame.setTitle("冰逸的按钮");
//创建按钮对象
JButton btn = new JButton("点我啊~~");
btn.setBounds(250,250,100,100);
//将按钮添加到窗体的面板对象中
jFrame.getContentPane().add(btn);
jFrame.setVisible(true);
}
}
焦点:程序的注意力集中在某一个组件上
注意:按钮组件比较特殊,在创建好后,程序的焦点,默认就停留在按钮组件上面,但是按钮组件,其实不需要占用程序的焦点,可以通过setFocusable(false);取消焦点
JLabel组件
用于展示文本和图片
JLabel(String text)使用指定的文本创建一个JLabel对象
JLabel(Icon image)创建一个具有指定图像的JLabel对象
package frame;
import javax.swing.*;
public class JLabelTest {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setSize(1200, 1200);
frame.setLayout(null);
JLabel jl1 = new JLabel("照片");
jl1.setBounds(100, 100, 300, 300);
frame.getContentPane().add(jl1);
JLabel imgLabel_2021071110315659png = new JLabel(new ImageIcon("C:\\U2021071110315659.png"));
imgLabel_2021071110315659png.setBounds(0, 0, 1000, 1000);
frame.getContentPane().add(imgLabel_2021071110315659png);
frame.setVisible(true);
}
}
注意:如果多个组件摆放在同一位置,后添加的组件,会被压在底部
事件
事件是可以被组件识别的操作
当你对组件干了某件操作之后,就会执行对应的代码
1.事件源:按钮、图片、窗体
2.事件操作:鼠标单击,键盘按下
3.绑定监听:当事件源上发生了事件操作,触发执行某段代码
ActionListener:动作监听器(鼠标点击,空格按下)
package frame;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class JLabelTest {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setSize(1200, 1200);
frame.setLayout(null);
JButton jl1 = new JButton("按钮");
jl1.setBounds(100, 100, 300, 300);
frame.getContentPane().add(jl1);
jl1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("我被点了");
}
});
frame.setVisible(true);
}
}
KeyListener:键盘监听器
package frame;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class JLabelTest {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setSize(1200, 1200);
frame.setLayout(null);
JButton jl1 = new JButton("按钮");
jl1.setBounds(100, 100, 300, 300);
frame.getContentPane().add(jl1);
jl1.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
System.out.println("业务代码");
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("业务代码");
}
@Override
public void keyReleased(KeyEvent e) {
System.out.println("业务代码");
}
});
frame.setVisible(true);
}
}