GUI编程-Swing

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);
发布了46 篇原创文章 · 获赞 1 · 访问量 1006

猜你喜欢

转载自blog.csdn.net/qq_42022411/article/details/103358603