1.窗口、面板
public class JFrameTest {
public static void main(String[] args) {
new MyJFrame();
}
}
class MyJFrame extends JFrame{
public MyJFrame(){
this.setVisible(true);
this.setBackground(Color.red);
this.setLayout(null);//绝对布局
this.setSize(100,200);
JPanel panel = new JPanel();
panel.setBackground(Color.BLUE);
panel.setSize(10,20);
this.add(panel);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
class JpanelDemo1 extends JFrame {
public JpanelDemo1(){
Container container = this.getContentPane();
container.setLayout(new GridLayout(2,1,10,10));
JPanel panel1 = new JPanel(new GridLayout(1,3));
JPanel panel2 = new JPanel(new GridLayout(1,2));
JPanel panel3 = new JPanel(new GridLayout(2,1));
JPanel panel4 = new JPanel(new GridLayout(3,2));
panel1.add(new JButton("1"));
panel1.add(new JButton("1"));
panel1.add(new JButton("1"));
panel2.add(new JButton("2"));
panel2.add(new JButton("2"));
panel3.add(new JButton("3"));
panel3.add(new JButton("3"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
container.setBackground(Color.BLACK);
container.add(panel1);
container.add(panel2);
container.add(panel3);
container.add(panel4);
this.setVisible(true);
this.setSize(500,500);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
public class JpanelDemo{
public static void main(String[] args) {
new JpanelDemo1();
}
}
2.弹窗
class MyDialog extends JFrame{
public MyDialog(){
this.setVisible(true);
this.setSize(700,400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
Container container = this.getContentPane();
container.setLayout(null);
JButton button = new JButton("弹窗了哈哈");
button.setBounds(10,10,200,50);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JDialog jDialog = new JDialog();
jDialog.setVisible(true);
jDialog.setBounds(100,100,500,500);
// this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Label loc_lable = new Label();
loc_lable.setLocation(200,200);
loc_lable.setSize(100,100);
loc_lable.setText("小丹丹带你学习");
System.out.println(loc_lable.getText());
Container container = jDialog.getContentPane();
//设置布局为绝对布局
container.setLayout(null);
//标签会居中,但是为了防止乱码,要设置为GBK编码
container.add(loc_lable);
}
});
container.add(button);
}
}
3.标签
图标:
//图标,需要实现类,Frame继承
public class IconDemo extends JFrame implements Icon {
private int width;
private int height;
public IconDemo(){} //无参构造
public IconDemo(int width,int height){
this.width = width;
this.height = height;
}
public void init(){
IconDemo iconDemo = new IconDemo(15, 15);
//图标放在标签,也可以放在按钮上!
JLabel label = new JLabel("icontest", iconDemo, SwingConstants.CENTER);
Container container = getContentPane();
container.add(label);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new IconDemo().init();
}
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
g.fillOval(x,y,width,height);
}
@Override
public int getIconWidth() {
return this.width;
}
@Override
public int getIconHeight() {
return this.height;
}
}
4.面板
public class JpanelTest {
public static void main(String[] args) {
new MyJpanel();
}
}
class MyJpanel extends JFrame{
public MyJpanel(){
//得到容器
Container container = this.getContentPane();
container.setLayout(new GridLayout(2,1,10,10)); //后面的参数的意思,间距
JPanel panel1 = new JPanel(new GridLayout(1,3));
JPanel panel2 = new JPanel(new GridLayout(2,2));
panel1.add(new JButton("1"));
panel1.add(new JButton("1"));
panel1.add(new JButton("1"));
panel2.add(new JButton("2"));
panel2.add(new JButton("2"));
panel2.add(new JButton("2"));
panel2.add(new JButton("2"));
container.add(panel1);
container.add(panel2);
this.setVisible(true);
this.setSize(500,500);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
5.按钮
图片按钮
public class JButtonDemo {
public JButtonDemo(){
//窗口设置
JFrame frame = new JFrame("图片按钮");
frame.setVisible(true);
frame.setSize(500,500);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container container = frame.getContentPane();
//将图片变成图标
URL url=JButtonDemo.class.getResource("body.png");
ImageIcon imageIcon = new ImageIcon(url);
JButton button = new JButton();
//添加到按钮
button.setIcon(imageIcon);
button.setToolTipText("图片按钮呀");//当鼠标停留在图标上面的时候显示
container.add(button);
}
public static void main(String[] args) {
new JButtonDemo();
}
}
单选按钮
//窗口设置
JFrame frame = new JFrame("图片按钮");
frame.setVisible(true);
frame.setSize(500,500);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container container = frame.getContentPane();
//将图片变成图标
URL url=JButtonDemo.class.getResource("body.png");
ImageIcon imageIcon = new ImageIcon(url);
//单选按钮
JRadioButton button1 = new JRadioButton("单选框1");
JRadioButton button2 = new JRadioButton("单选框2");
JRadioButton button3 = new JRadioButton("单选框3");
//分组才能实现单选框
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(button1);
buttonGroup.add(button2);
buttonGroup.add(button3);
container.add(button1,BorderLayout.BEFORE_FIRST_LINE);
container.add(button2,BorderLayout.AFTER_LAST_LINE);
container.add(button3,BorderLayout.CENTER);
复选按钮
//多选框
JCheckBox checkBox01 = new JCheckBox("checkBox01");
JCheckBox checkBox02 = new JCheckBox("checkBox02");
container.add(checkBox01,BorderLayout.NORTH);
container.add(checkBox02,BorderLayout.SOUTH);
6.列表
下拉列表
JComboBox status = new JComboBox();
status.addItem(null);
status.addItem("正在热映");
status.addItem("已下架");
status.addItem("即将上映");
container.add(status);
列表框
7.文本框
文本框
Container container = this.getContentPane();
JTextField textField = new JTextField("hello");
JTextField textField2 = new JTextField("world",20);
container.add(textField,BorderLayout.NORTH);
container.add(textField2,BorderLayout.SOUTH);
密码框
JTextField textField = new JTextField("hello");
JTextField textField2 = new JTextField("world",20);
container.add(textField,BorderLayout.NORTH);
container.add(textField2,BorderLayout.SOUTH);