2 event source & inner class DEMO(quote from Head First Java 2e)

来源:互联网 发布:js window.open 居中 编辑:程序博客网 时间:2024/06/18 08:33
import java.awt.BorderLayout;import java.awt.Color;import java.awt.Graphics;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;@SuppressWarnings("serial")class MyDrawPanel extends JPanel {    public void paintComponent(Graphics g) {        g.fillRect(0, 0, this.getWidth(), this.getHeight());        int red = (int)(Math.random() * 255);        int green = (int)(Math.random() * 255);        int blue = (int)(Math.random() * 255);                Color randomColor = new Color(red, green, blue);        g.setColor(randomColor);        g.fillOval(30, 30, 100, 100);    }}public class TwoButtons {    JFrame frame;    JLabel label;        public static void main(String[] args) {        TwoButtons gui = new TwoButtons();        gui.go();    }        public void go() {        frame = new JFrame();        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                JButton labelButton = new JButton("Change Label");        labelButton.addActionListener(new LabelListener());                JButton colorButton = new JButton("Change Circle");        colorButton.addActionListener(new ColorListener());                label = new JLabel("I'm a label");        MyDrawPanel drawPanel = new MyDrawPanel();                frame.getContentPane().add(BorderLayout.SOUTH, colorButton);        frame.getContentPane().add(BorderLayout.CENTER, drawPanel);        frame.getContentPane().add(BorderLayout.EAST, labelButton);        frame.getContentPane().add(BorderLayout.WEST, label);                frame.setSize(300,  300);        frame.setVisible(true);    }        class LabelListener implements ActionListener {        public void actionPerformed(ActionEvent event) {            label.setText("Ouch!");        }    } // close inner class        class ColorListener implements ActionListener {        public void actionPerformed(ActionEvent event) {            frame.repaint();        }    } // close inner class}



0 0
原创粉丝点击