精华内容
下载资源
问答
  • 你可以这样加入按钮文字字段等组件。frame.getContentPane().add(button); 3. JFrame与其他组件不同,不能直接加上组件,要用它content pane。 4. 要显示window,你得指定尺寸和执行显示动作。frame.setS...

    1. GUI从创建window开始,通常会使用JFrame。JFrame frame = new JFrame();

    2. 你可以这样加入按钮,文字字段等组件。frame.getContentPane().add(button);

    3. JFrame与其他组件不同,不能直接加上组件,要用它的content pane。

    4. 要显示window,你得指定尺寸和执行显示动作。frame.setSize(300,300); frame.setVisible(true);

    5. 监听GUI事件才能知道用户对接口做了什么事情。

    6. 你必须要对事件源注册所要监听的事件。事件源是一种会根据用户操作而触发事件的机制。

    7. 监听接口让事件源能够调用你提供的方法。

    8. 要对事件源注册就调用事件源的注册方法,它的方法一定是add<EventType>Listener这种形式。如:button.addActionListener(this);

    9. 通过实现所有的事件处理方法来实现监听接口。

    10. 传递给事件处理方法的事件对象带有事件的信息,其中包括了事件源。

     

    图形:

    1. 二维图形可以直接画在图形组件上。

    2. .gif与.jpeg文件可以直接放在组件上。

    3. 用JPanel的自雷覆盖paintComponent()方法绘制自定义的图形。

    4. paintComponent()方法会有GUI系统调用,你不可以自己调用。它的参数是个你不能自己创建的Graphics对象。

    5. Graphics对象有些你可以调用的方法:grapics.setColor(Color.blue); g.fillRect(20,50,100,120);

    6. 使用Image来绘制.jpg:Image image = new ImageIcon(“pic.jpg”).getImage();  g.grawImage(image, 3, 4, this);

    7. paintComponent()的Graphics参数实际上是个Graphics2D。

    8. 调用Graphics2D的方法前,你必须把Graphics对象转换成Graphics2D。

     

     

    需要抽时间好好研究下Java的GUI开发

    转载于:https://www.cnblogs.com/shinhwa/p/3303357.html

    展开全文
  • 按下每个按钮时,使不同的文字显示在文本框中。  2)编程:创建一用户登录界面,接受用户输入的帐号和密码,给三次输入机会。  3)编程:编写成人标准身高和体重互查的程序。身高和体生在两个不同的文本框中输入...

      一、实验内容

      1)编程:创建有一个文本框和三个按钮的小程序。当按下每个按钮时,使不同的文字显示在文本框中。
      2)编程:创建一用户登录界面,接受用户输入的帐号和密码,给三次输入机会。
      3)编程:编写成人标准身高和体重互查的程序。身高和体生在两个不同的文本框中输入,要求输入一个。输入身高则输出体重,输入体重则输出身高。用一个按钮启动互查。互查的公式为: 体重=身高-100。
      4)编程:创建三个JSlider滚动条和一个JLabel标签对象,滚动条用来调整红、绿、蓝三色的比例,每个滚动条加标题边界、设置刻度  自定)和标注。当拖动滑块修改三色比例时,变化标签的背景色。
      5)编程:创建一个文本框、三个单选按钮、一个标签和一个按钮,文本框用来输入自然数N,根据选择单选按钮的不同,分别计算:1+2+…N或1*2*…N或1+1/2+1/3+…1/N,计算结果在标签中显示。

    二、实验代码

    1、OneQuestion.java

    package exceptioneight;
    import java.awt.Container;
    import java.awt.FlowLayout;
    import static java.awt.FlowLayout.CENTER;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    import javax.swing.WindowConstants;
    /**
     *
     * @author 31621
     */
    public class OneQuestion extends JFrame{
        private JPanel panel = new JPanel();
        private JPanel pane = new JPanel();
        private JTextArea textArea = new JTextArea(5, 30);//指定初始文字和宽度
        private JButton textOne = new JButton("文本一");
        private JButton textTwo = new JButton("文本二");
        private JButton textThree = new JButton("文本三");
        public OneQuestion() {
            super("显示不同文本");
            //setBounds(600, 400, 500, 200);
            setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//关闭窗口,不结束程序
            BoxLayout box = new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);
            setLayout(box);//容器布局为:方框垂直布局
            
            //控件属性
            panel.setLayout(new FlowLayout(CENTER));
            pane.setLayout(new FlowLayout(CENTER));
            textArea.setEditable(false);//文本框不可编辑
            textArea.setLineWrap(true);
            textArea.setText("                                                                                                                                                           Hello world!");
            
            
            
            //事件
            textOne.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    textArea.setText("文本一111111111111");
                }
            });
            textTwo.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    textArea.setText("文本二2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222");
                }
            });
            textThree.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    textArea.setText("文本三33333333333333");
                }
            });
            
            //布局
            panel.add(textArea);
            pane.add(textOne);
            pane.add(textTwo);
            pane.add(textThree);
            add(panel);
            add(pane);
            pack();
            setLocation(720, 260);
            setVisible(true);       
        }
    }

    2、TwoQuestion.java

    package exceptioneight;
    
    import java.awt.FlowLayout;
    import static java.awt.FlowLayout.CENTER;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    
     /**问题二:
      * 创建一用户登录界面,接受用户输入的帐号和密码,给三次输入机会。
      */
    public class TwoQuestion extends JFrame{
        private int count = 3;//记录登录的次数
        private JLabel jl1 = new JLabel("用户名:");
        private JLabel jl2 = new JLabel(" 密码   :");
        private JTextField jtf1 = new JTextField(16);
        private JPasswordField jpf1 = new JPasswordField(16);
        private JButton jb1 = new JButton("登录");
        private JPanel jp1 = new JPanel();
        private JPanel jp2 = new JPanel();
        private FlowLayout fl1 = new FlowLayout(CENTER);
        private BoxLayout bl1 = new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);
        public TwoQuestion() {
            super("登录");
            setLayout(bl1);
            setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//关闭窗口,不结束程序
            jp1.setLayout(fl1);
            jp2.setLayout(fl1);
            //控件属性
            
            //事件
            jb1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    String acc = "yudong";
                    String pass = "yudong";
                    String account = jtf1.getText();
                    char[] password = jpf1.getPassword();
                    String newPass = new String(password);
                    if(count > 0) {
                        if(account.equals(acc) && pass.equals(newPass)) {
                            JOptionPane.showMessageDialog(null, "登录成功");
                        } else {
                            count--;
                            JOptionPane.showMessageDialog(null, "登录失败!还剩"+count+"次机会登录!");
                        } 
    //                    if(count == 0) {//可以关闭按钮
    //                        jb1.setEnabled(false);
    //                    }
                    } else {
                        JOptionPane.showMessageDialog(null, "拒绝登录!您超过3次登录失败!");
                    }
                }
    
            });
            
            //布局
            jp1.add(jl1);
            jp1.add(jtf1);
            jp2.add(jl2);
            jp2.add(jpf1);
            add(jp1);
            add(jp2);
            add(jb1);
            pack();
            setLocation(720, 260);
            setVisible(true);
        }
        
    }

     3、ThreeQuestion.java

    package exceptioneight;
    
    import java.awt.FlowLayout;
    import static java.awt.FlowLayout.CENTER;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    
    /**编程三:
     * 编写成人标准身高和体重互查的程序。
     * 身高和体生在两个不同的文本框中输入,要求输入一个。
     * 输入身高则输出体重,输入体重则输出身高。
     * 用一个按钮启动互查。互查的公式为: 体重=身高-100。
     */
    public class ThreeQuestion extends JFrame{
    
        private JLabel jl1 = new JLabel("身高:");
        private JLabel jl2 = new JLabel("体重:");
        private JTextField jtf1 = new JTextField(16);
        private JTextField jtf2 = new JTextField(16);
        private JButton jb1 = new JButton("开始转换");
        private JPanel jp1 = new JPanel();
        private JPanel jp2 = new JPanel();
        private JPanel jp3 = new JPanel();
        private FlowLayout fl1 = new FlowLayout(CENTER);
        private BoxLayout bl1 = new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);
        public ThreeQuestion() {
            super();
            setLayout(bl1);
            setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//关闭窗口,不结束程序
            jp1.setLayout(fl1);
            jp2.setLayout(fl1);
            jp3.setLayout(fl1);
            //控件属性
            
            //事件
            jb1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    String height = jtf1.getText();
                    String weight = jtf2.getText();
                    if(!height.equals("")) {
                        int h = Integer.parseInt(height);
                        jtf2.setText(String.valueOf((h - 100)));
                    } else {
                        int w = Integer.parseInt(weight);
                        jtf1.setText(String.valueOf((w + 100)));
                    }
                }
            });
            
            //布局
            jp1.add(jl1);
            jp1.add(jtf1);
            jp2.add(jl2);
            jp2.add(jtf2);
            jp3.add(jb1);
            add(jp1);
            add(jp2);
            add(jp3);
            pack();
            setLocation(720, 260);
            setVisible(true);
        }
    }

    4、NewFourQuestion.java

    package exceptioneight;
    
    import java.awt.Color;
    import java.awt.FlowLayout;
    import static java.awt.FlowLayout.CENTER;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    //import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javax.swing.BoxLayout;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JSlider;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
    
    /**编程四:
     * 创建三个JSlider滚动条和一个JLabel标签对象,
     * 滚动条用来调整红、绿、蓝三色的比例,每个滚动条加标题边界、设置刻度(自定)和标注。
     * 当拖动滑块修改三色比例时,变化标签的背景色。
     */
    public class NewFourQuestion extends JFrame{
        JLabel jl0 = new JLabel("                                       ");
        JLabel jl1 = new JLabel("红:");
        JLabel jl2 = new JLabel("绿:");
        JLabel jl3 = new JLabel("蓝:");
        JSlider js1 = new JSlider(0, 255);//设置最小值和最大值
        JSlider js2 = new JSlider(0, 255);
        JSlider js3 = new JSlider(0, 255);
        JPanel jp0 = new JPanel();
        JPanel jp1 = new JPanel();
        JPanel jp2 = new JPanel();
        JPanel jp3 = new JPanel();
        FlowLayout fl  = new FlowLayout(CENTER);
        
        public NewFourQuestion() {
            super("RGB");
            setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//关闭窗口,不结束程序
            BoxLayout box = new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);
            setLayout(box);//容器布局为:方框垂直布局
            //属性:
            jp0.setLayout(fl);//面板布局
            jp1.setLayout(fl);
            jp2.setLayout(fl);
            jp3.setLayout(fl);
            js1.setMajorTickSpacing(50);//设置滚动条
            js1.setMinorTickSpacing(10);
            js1.setPaintTicks(true);
            js1.setPaintLabels(true);
            js2.setMajorTickSpacing(50);
            js2.setMinorTickSpacing(20);
            js2.setPaintTicks(true);
            js2.setPaintLabels(true);
            js3.setMajorTickSpacing(50);
            js3.setMinorTickSpacing(30);
            js3.setPaintTicks(true);
            js3.setPaintLabels(true);
            jl0.setOpaque(true);//不透明
            jl0.setBackground(new Color(150, 150, 150));
            js1.addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent e) {
                    int r = js1.getValue();
                    int g = js2.getValue();
                    int b = js3.getValue();
                    jl0.setBackground(new Color(r, g, b));
                }
            });
            js2.addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent e) {
                    int r = js1.getValue();
                    int g = js2.getValue();
                    int b = js3.getValue();
                    jl0.setBackground(new Color(r, g, b));
                }
            });
            js3.addChangeListener(new ChangeListener() {
                public void stateChanged(ChangeEvent e) {
                    int r = js1.getValue();
                    int g = js2.getValue();
                    int b = js3.getValue();
                    jl0.setBackground(new Color(r, g, b));
                }
            });
    
            
            //布局
            jp0.add(jl0);
            jp1.add(jl1);
            jp1.add(js1);
            jp2.add(jl2);
            jp2.add(js2);
            jp3.add(jl3);
            jp3.add(js3);
            add(jp0);
            add(jp1);
            add(jp2);
            add(jp3);
            pack();
            setLocation(720, 260);
            setVisible(true);
        }
    }

    5、NewFiveQuestion.java

    package exceptioneight;
    
    import java.awt.Color;
    import java.awt.FlowLayout;
    import static java.awt.FlowLayout.CENTER;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.BoxLayout;
    import javax.swing.ButtonGroup;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JTextField;
    
    /**编程五:
     *创建一个文本框、三个单选按钮、一个标签和一个按钮,
     * 文本框用来输入自然数N,根据选择单选按钮的不同,
     * 分别计算:1+2+…N或1*2*…N或1+1/2+1/3+…1/N,
     * 计算结果在标签中显示。
     */
    public class NewFiveQuestion extends JFrame {
        private JTextField jTextField1 = new JTextField(16);
        private JLabel jLabel1 = new JLabel("请输入自然数N:");
        private JLabel jLabel2 = new JLabel("计算结果为:  ");
        private JPanel jpane0 = new JPanel();
        private JPanel jpane1 = new JPanel();
        private JPanel jpane2 = new JPanel();
        private JPanel jpane3 = new JPanel();
        private ButtonGroup buttonGroup = new ButtonGroup();//单选按钮组
        private JRadioButton jRadioButton1 = new JRadioButton("1+2+…N");
        private JRadioButton jRadioButton2 = new JRadioButton("1*2*…N");
        private JRadioButton jRadioButton3 = new JRadioButton("1+1/2+1/3+…1/N");
        private FlowLayout fl  = new FlowLayout(CENTER);
        private BoxLayout box = new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);
        private String nStr;
        private int nInt;
        
        public NewFiveQuestion() {
            super();
            setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//关闭窗口,不结束程序
            setLayout(box);//容器布局为:方框垂直布局
            
            //属性
            jpane1.setLayout(fl);
            jpane2.setLayout(fl);
            jpane3.setLayout(fl);
            buttonGroup.add(jRadioButton1);
            buttonGroup.add(jRadioButton2);
            buttonGroup.add(jRadioButton3);
            
            //事件
            jRadioButton1.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent evt) {
                    nStr = jTextField1.getText();
                    if(!nStr.equals("") ) {
                        nInt = Integer.parseInt(nStr);
                    } else {
                        nInt = -1;
                    }
                    jLabel2.setText("计算结果为:" + String.valueOf(One(nInt)));
                }
            });
            jRadioButton2.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    nStr = jTextField1.getText();
                    if(!nStr.equals("") ) {
                        nInt = Integer.parseInt(nStr);
                    } else {
                        nInt = -1;
                    }
                    jLabel2.setText("计算结果为:" + String.valueOf(Two(nInt)));
                }
            });
            jRadioButton3.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    nStr = jTextField1.getText();
                    if(!nStr.equals("") ) {
                        nInt = Integer.parseInt(nStr);
                    } else {
                        nInt = -1;
                    }
                    jLabel2.setText("计算结果为:" + String.valueOf(Three(nInt)));
                }
            });
            //布局
            jpane0.add(jLabel1);
            jpane1.add(jTextField1);
            jpane2.add(jRadioButton1);
            jpane2.add(jRadioButton2);
            jpane2.add(jRadioButton3);
            jpane3.add(jLabel2);
            add(jpane0);
            add(jpane1);
            add(jpane2);
            add(jpane3);
            pack();
            setLocation(720, 260);
            setVisible(true);
        }
        /**
         * 1+2+…N
         */
        public int One(int n) {
            if(n < 1) return 0;
            int sum = 0;
            for(int i = 1; i <= n; i++){
                sum += i;
            }
            return sum;
        }
        /**
         * 1*2*…N
         */
        public int Two(int n) {
            if(n < 1) return 0;
            int sum = 1;
            for(int i = 1; i <= n; i++){
                sum *= i;
            }
            return sum;
        }
        /**
         * 1+1/2+1/3+…1/N
         */
        public double Three(int n) {
            if(n < 1) return 0;
            double sum = 0;
            for(int i = 1; i <= n; i++){
                sum += 1.0/i;
            }
            return sum;
        }
    }

    6、ExceptionEight.java

    package exceptioneight;
    
    import java.awt.FlowLayout;
    import static java.awt.FlowLayout.CENTER;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    
    /**
     *实验八 主程序
     */
    public class ExceptionEight extends JFrame{
        private JTextArea textArea = new JTextArea(13, 50);//指定初始文字和宽度
        private JButton jButton1 = new JButton("编程一");
        private JButton jButton2 = new JButton("编程二");
        private JButton jButton3 = new JButton("编程三");
        private JButton jButton4 = new JButton("编程四");
        private JButton jButton5 = new JButton("编程五");
        private JPanel jPanel1 =new JPanel();
        private JPanel jPanel2 =new JPanel();
        private FlowLayout fl  = new FlowLayout(CENTER);
        private BoxLayout box = new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);
        public ExceptionEight() {
            super();
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口,就结束程序
            setLayout(box);//容器布局为:方框垂直布局
            
            //控件属性
            jPanel1.setLayout(fl);
            jPanel2.setLayout(fl);
            textArea.setEditable(false);//文本框不可编辑
            textArea.setLineWrap(true);//自动换行
            textArea.setText("            实验八\n          (1)编程:创建有一个文本框和三个按钮的小程序。当按下每个按钮时,使不同的文字显示在文本框中。\n" +
    "          (2)编程:创建一用户登录界面,接受用户输入的帐号和密码,给三次输入机会。\n" +
    "          (3)编程:编写成人标准身高和体重互查的程序。身高和体生在两个不同的文本框中输入,要求输入一个。输入身高则输出体重,输入体重则输出身高。用一个按钮启动互查。互查的公式为: 体重=身高-100。\n" +
    "          (4)编程:创建三个JSlider滚动条和一个JLabel标签对象,滚动条用来调整红、绿、蓝三色的比例,每个滚动条加标题边界、设置刻度(自定)和标注。当拖动滑块修改三色比例时,变化标签的背景色。\n" +
    "          (5)编程:创建一个文本框、三个单选按钮、一个标签和一个按钮,文本框用来输入自然数N,根据选择单选按钮的不同,分别计算:1+2+…N或1*2*…N或1+1/2+1/3+…1/N,计算结果在标签中显示。");
            //事件
            jButton1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    /**编程一:
                    * 创建有一个文本框和三个按钮的小程序。
                    * 当按下每个按钮时,使不同的文字显示在文本框中。
                     */
                    new OneQuestion();
                }
            });
            jButton2.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    /**编程二:
                    * 创建一用户登录界面,接受用户输入的帐号和密码,给三次输入机会。
                     */
                    new TwoQuestion();   
                }
            });
            jButton3.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    /**编程三:
                    * 编写成人标准身高和体重互查的程序。
                    * 身高和体生在两个不同的文本框中输入,要求输入一个。
                    * 输入身高则输出体重,输入体重则输出身高。
                   * 用一个按钮启动互查。互查的公式为: 体重=身高-100。
                   */
                  new ThreeQuestion();
                }
            });        
            jButton4.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    /**编程四
                    * 创建三个JSlider滚动条和一个JLabel标签对象,
                    * 滚动条用来调整红、绿、蓝三色的比例,每个滚动条加标题边界、设置刻度(自定)和标注。
                    * 当拖动滑块修改三色比例时,变化标签的背景色。
                    */
                    new NewFourQuestion();
                }
            }); 
            jButton5.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    /**编程五
                     * 创建一个文本框、三个单选按钮、一个标签和一个按钮,
                     * 文本框用来输入自然数N,根据选择单选按钮的不同,
                     * 分别计算:1+2+…N或1*2*…N或1+1/2+1/3+…1/N,
                     * 计算结果在标签中显示。
                     */
                    new NewFiveQuestion();
                }
            });
            //布局
            jPanel1.add(textArea);
            jPanel2.add(jButton1);
            jPanel2.add(jButton2);
            jPanel2.add(jButton3);
            jPanel2.add(jButton4);
            jPanel2.add(jButton5);
            add(jPanel1);
            add(jPanel2);
            pack();
            setLocation(420, 220);
            setVisible(true);
        }
        public static void main(String[] args) {
          new ExceptionEight();
        }   
    }

    三、运行结果

    送你一份Java基础课程PPT,老师讲的超好,网盘链接:https://pan.baidu.com/s/1FnWr404NxwyzqBPAog74Ng

    (若链接失效可发邮件到ydduong@163.com) 

    展开全文
  • 很多系统界面上仍然保持着老式风格,远远没有跟上时代发展脚步,它们没有创新、好玩的特性,缺少现代化交互元素和用户体验 大部分系统是从程序员角度进行设计,没有考虑实际产品、运营需求,这类系统...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时动作等,都可在本源码中得以体现。 Java编写显示器显示模式检测程序 2个目标文件 内容...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时动作等,都可在本源码中得以体现。 Java编写显示器显示模式检测程序 2个目标文件 ...
  • java源码包

    2015-12-01 16:29:37
    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时动作等,都可在本源码中得以体现。 Java编写显示器显示模式检测程序 2个目标文件 内容...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时动作等,都可在本源码中得以体现。 Java编写显示器显示模式检测程序 2个目标文件 ...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时动作等,都可在本源码中得以体现。 Java编写显示器显示模式检测程序 2个目标文件 内容...
  • 像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时动作等,都可在本源码中得以体现。 Java编写显示器显示模式检测程序 2个目标文件 内容...
  • 像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时动作等,都可在本源码中得以体现。 Java编写显示器显示模式检测程序 2个目标文件 内容...
  • 像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时动作等,都可在本源码中得以体现。 Java编写显示器显示模式检测程序 2个目标文件 内容...
  • 最近学校课比较少,自己在闲暇时间 通过java从入门到精通(放弃)这本书了解了Swing图形化界面,觉得这部分挺有意思的,下面是个人对该部分的按钮组件的一点小结: 当我们进行用户注册登录的时候,界面往往会出现...

    最近学校课比较少,自己在闲暇时间 通过java从入门到精通(放弃)这本书了解了下Swing图形化界面,觉得这部分挺有意思的,下面是个人对该部分的按钮组件的一点小结:

    当我们进行用户注册登录的时候,界面往往会出现不同的选项框,这是我们经常会用到的,Swing组件也给我们提供了两种组件:
    单选框组件(JRadioButton)
    默认情况下单选按钮显示一个圆形图标,并且通常在该图标旁放置一些说明文字,继承于AbstractButton类。
    复选框组件(JCheckBox)
    同样继承于AbstractButton类,具有一个方块图标,外加一段描述性文字,与单选框唯一不同是复选框可以进行多选设置。

    下面是对于单选框与复选框的基本操作自己做的一个简易登录界面的代码:

    package com.lw.test;
    
    import java.awt.Container;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.BorderFactory;
    import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.WindowConstants;
    
    public class MyCheckBoxTest extends JFrame{
     JPanel jp1,jp2,jp3;//定义面板属性
     JLabel jl1,jl2;//定义标签组件
     JButton jb1,jb2;//定义按钮组件
     JCheckBox jcb1,jcb2,jcb3;//定义多选框组件
     JRadioButton jrb1,jrb2;//定义单选框组件
     ButtonGroup bg;//定义按钮组
     public MyCheckBoxTest(){
      jp1=new JPanel();
      jp2=new JPanel();
      jp3=new JPanel();
      jb1=new JButton("注册用户");  //创建按钮
      jb2=new JButton("取消注册");
      jl1=new JLabel("你的爱好"); //创建标签
      jl2=new JLabel("你的性别");
      jcb1=new JCheckBox("唱跳");   //创建复选框  
      jcb2=new JCheckBox("Rap");  
      jcb3=new JCheckBox("篮球");  
      jrb1=new JRadioButton("男");   //创建单选框  
      jrb2=new JRadioButton("女");
      bg=new ButtonGroup();
    
    Container c=getContentPane();
      //设置布局管理器   3行1列
      c.setLayout(new GridLayout(3, 1));
      //向窗体添加三个面板
      c.add(jp1);
      c.add(jp2);
      c.add(jp3);
      //添加第一个面板组件
      jp1.setBorder(BorderFactory.createTitledBorder("枯木逢春 我逢你"));//创建一个带有空标题的新标题边框
      jp1.add(jl2);
      bg.add(jrb1); //注意要把单选框放入按钮组作用域中才能实现单选 
      bg.add(jrb2);
      jp1.add(jrb1);
      jp1.add(jrb2);
      //添加第二个面板组件
      jp2.add(jl1);
      jp2.add(jcb1);
      jp2.add(jcb2);
      jp2.add(jcb3);
      //添加第三个面板组件
      jp3.add(jb1);
      //为按钮添加监听事件
      jb1.addActionListener(new ActionListener() { 
       @Override
       public void actionPerformed(ActionEvent e) {
        //弹出确认对话框
        JOptionPane.showMessageDialog(null, "注册成功!!,欢迎加入我们"); 
       }
      });
      jp3.add(jb2);
      //为按钮添加监听事件
      jb2.addActionListener(new ActionListener() { 
       @Override
       public void actionPerformed(ActionEvent e) {
        //弹出确认对话框
        JOptionPane.showMessageDialog(null,"你已取消注册");
       }
      });
    
    setTitle("用户注册界面");设置界面标题
      setSize(350,250);设置界面大小
      this.setLocation(400, 400);设置界面初始位置
      setVisible(true);//界面可视化
      setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);//设置虚拟机和界面一同关闭
     }
    public static void main(String[] args) {
      new MyCheckBoxTest();
     }
    }
    
    

    以下是运行结果截图:

    此图为运行后显示的界面,性别选项为单选框,只能选其中一个。而爱好选项为多选框,可以多选,注册用户和取消注册按钮添加了监听事件,点击会弹出确认对话框。

    此图为点击“注册用户”弹出的确认对话框。

    在这里插入图片描述
    此图为点击“取消注册”弹出的确认对话框。

    展开全文
  • Java开发技术大全(500个源代码).

    热门讨论 2012-12-02 19:55:48
    showInstVar.java 演示不同的对象拥有不同的成员变量 showMain.java 演示main方法访问本类成员 showMethod.java 演示如何定义一个方法体 showReturn_1.java return语句示例1 showReturn_2.java return语句示例2...
  • 媒体查询 CSS媒体查询允许开发者基于浏览网站的设备的特性来应用不同的样式申明,最常用的特性是视口宽度。 GCF 谷歌内嵌浏览器框架, 使用此插件,用户可以通过Internet Explorer的用户界面,以Chrome内核的渲染方式...
  • 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器——多按钮的整合应用 3.17 关于(About)程序信息——Menu功能菜单程序设计 3.18 程序加载中,请稍后——...
  • 参数Text表示文字气球中显示的 文字,参数url表示.wav文件路径。 ---- Peedy.speak( 嗨,朋友们,你们好,现在由我为您提供帮助! , C:新建文件夹Help.wav ); ---- Peedy.Speak( Do you like my help? If ...
  • windows 程序设计

    2011-07-24 21:16:30
    使用者可以使用键盘(或者更直接地使用鼠标等指向设备)直接在屏幕上操纵这些对象,拖动图形对象、按下鼠标按钮以及滚动滚动条。 因此,使用者与程序交流变得更为亲密。这不再是一种从键盘到程序,再到视讯显示器...
  • EmEditor V12+注册码

    热门讨论 2013-01-22 11:53:13
    但是在追求轻便快速的同时,又要满足用户各种不同的需求,就会有腹背受敌的感觉。此时EmEditor采取的办法是插件(plug-in)的导入。以此实现特别功能的扩张功能。通过简洁轻便的插件的使用,几乎可以实现所有的特殊...
  • 3.14 控制不同的文字字体 3.15 如iPhone拖动相片特效 3.16 自制计算器 3.17 关于(About)程序信息 3.18 程序加载中,请稍候 3.19 全屏幕以按钮重写 3.20 今晚到哪儿打牙祭 3.21 Android变脸 3.22 打勾显示输入的密码 ...
  • 3.14 控制不同的文字字体 3.15 如iPhone拖动相片特效 3.16 自制计算器 3.17 关于(About)程序信息 3.18 程序加载中,请稍候 3.19 全屏幕以按钮重写 3.20 今晚到哪儿打牙祭 3.21 Android变脸 3.22 打勾显示输入的密码 ...
  • 右键单击文档标签工具条,弹出菜单中选择“标签选项”,选中“用鼠标中间的按钮关闭”,这里包括鼠标的滚轮。 【8】软件技巧——如何去掉 EditPlus 保存文本文件时的添加后缀提示? 如果你使用 EditPlus 进行文本...
  • 5.1.4 存储不同的资源类型 74 5.1.5 使用程序访问资源 75 5.2 实例:使用Eclipse设置简单资源 75 5.3 使用资源 78 5.3.1 使用String(字符串)资源 79 5.3.2 使用格式化的String资源 80 5.3.3 使用...
  • fckedit编辑器

    2013-11-10 14:28:32
    最后注意不同的版本 变量名称可能不一样请参考你使用的API文档 配置选项: AutoDetectLanguage=true/false 自动检测语言 BaseHref="" 相对链接的基地址 ContentLangDirection="ltr/rtl" 默认文字方向 ...
  • 修改高级表格支持库,解决在鼠标按下和抬起之间收到时钟周期事件情况下,无法收到“被单击”事件BUG。 3. 修改扩展界面支持库三,解决单击卷帘菜单后导致日期框不能弹出下拉窗口BUG。 4. 修改XP风格支持库...
  •  Ivor Horton是撰著Java、C和C++编程语言图书杰出作家之一。大家一致认为,他著作独具风格,无论是编程新手,还是经验丰富编程人员,都很容易理解其内容。在个人实践中, Ivor Horton也是一名系统顾问。他...
  •  Ivor Horton是撰著Java、C和C++编程语言图书杰出作家之一。大家一致认为,他著作独具风格,无论是编程新手,还是经验丰富编程人员,都很容易理解其内容。在个人实践中,Ivor Horton也是一名系统顾问。他从事...
  • Activiti 作为一个遵从 Apache 许可工作流和业务流程管理开源平台,其核心是基于 Java 超快速、超稳定 BPMN2.0 流程引擎,强调流程服务可嵌入性和可扩展性,同时更加强调面向业务人员。 Activiti 流程引擎...
  • 2、LINUX启动TDS管理界面到操作端显示 383 3、命令模式启动与停止方式 384 4、TDS日志文件路径 384 5、TDS WEB访问路径及其默认账户 384 6、命令模式导出与导入LDIF 385 7、 界面形式迁移TDS/LDAP 385 8、TDS处于...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

java按下不同的按钮界面显示不同文字

java 订阅