java学习笔记_GUI(4)

 1 import javax.swing.*;
 2 import java.awt.event.*;
 3 import java.awt.*;
 4
 5 class MyPanel_0 extends JPanel {
 6     public void paintComponent( Graphics g ) {
 7         g.setColor( Color.orange );
 8         g.fillRect(20, 50, 100, 100);
 9     }
10 }
11
12 class MyPanel_1 extends JPanel {
13     public void paintComponent( Graphics g ) {
14         Image image = new ImageIcon("Winter.jpg").getImage();
15         g.drawImage(image, 3, 4, this);
16     }
17 }
18
19 class MyPanel_2 extends JPanel {
20     public void paintComponent( Graphics g ) {
21         g.fillRect(0, 0, this.getWidth(), this.getHeight());
22         int red = (int) (Math.random() * 255);
23         int green = (int) (Math.random() * 255);
24         int blue = (int) (Math.random() * 255);
25         Color randomColor = new Color(red, green, blue);
26         g.setColor(randomColor);
27         g.fillOval(70, 40, 100, 100);
28     }
29 }
30
31 class MyPanel_3 extends JPanel {
32     public void paintComponent( Graphics g ) {
33         Graphics2D g2d = (Graphics2D) g;
34         GradientPaint gradient = new GradientPaint(70, 70, Color.blue, 150, 150, Color.orange);
35         g2d.setPaint( gradient );
36         g2d.fillOval(70, 70, 100, 100);
37     }
38 }
39
40 class Gui implements ActionListener{
41
42     JButton button = new JButton("click me");
43     JFrame frame = new JFrame();
44
45     private void set_frame() {
46         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
47         frame.setSize(300, 200);
48         frame.setVisible(true);
49     }
50
51     public void show_button() {
52         set_frame();
53         frame.getContentPane().add(button);
54         button.addActionListener(this);
55     }
56
57     public void show_my_panel( String index) {
58         set_frame();
59         if ( index.equals("0") ) {
60             frame.getContentPane().add(new MyPanel_0());
61         }
62         else if ( index.equals("1") ) {
63             frame.getContentPane().add(new MyPanel_1());
64         }
65         else if ( index.equals("2") ) {
66             frame.getContentPane().add(new MyPanel_2());
67         }
68         else if ( index.equals("3") ) {
69             frame.getContentPane().add(new MyPanel_3());
70         }
71     }
72
73     public void actionPerformed( ActionEvent event ) {
74         button.setText("I‘ve been clicked!");
75     }
76 }
77
78 class GuiTest {
79     public static void main( String[] args ) {
80         Gui gui = new Gui();
81         if ( args.length > 0 ) {
82             gui.show_my_panel( args[0] );
83         }
84         else {
85             gui.show_button();
86         }
87     }
88 }

这个程序演示了几种不同的绘图等方法

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

class MyPanel_0 extends JPanel {
    public void paintComponent( Graphics g ) {
        g.setColor( Color.orange );
        g.fillRect(20, 50, 100, 100);
    }
}

class MyPanel_1 extends JPanel {
    public void paintComponent( Graphics g ) {
        Image image = new ImageIcon("Winter.jpg").getImage();
        g.drawImage(image, 3, 4, this);
    }
}

class MyPanel_2 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(70, 40, 100, 100);
    }
}

class MyPanel_3 extends JPanel {
    public void paintComponent( Graphics g ) {
        Graphics2D g2d = (Graphics2D) g;
        GradientPaint gradient = new GradientPaint(70, 70, Color.blue, 150, 150, Color.orange);
        g2d.setPaint( gradient );
        g2d.fillOval(70, 70, 100, 100);
    }
}

class Gui implements ActionListener{
    
    JButton button = new JButton("click me");
    JFrame frame = new JFrame();
    
    private void set_frame() {
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setVisible(true);
    }

public void show_button() {
        set_frame();
        frame.getContentPane().add(button);
        button.addActionListener(this);
    }
    
    public void show_my_panel( String index) {
        set_frame();
        if ( index.equals("0") ) {
            frame.getContentPane().add(new MyPanel_0());
        }
        else if ( index.equals("1") ) {
            frame.getContentPane().add(new MyPanel_1());
        }
        else if ( index.equals("2") ) {
            frame.getContentPane().add(new MyPanel_2());
        }
        else if ( index.equals("3") ) {
            frame.getContentPane().add(new MyPanel_3());
        }
    }
    
    public void actionPerformed( ActionEvent event ) {
        button.setText("I‘ve been clicked!");
    }
}

class GuiTest {
    public static void main( String[] args ) {
        Gui gui = new Gui();
        if ( args.length > 0 ) {
            gui.show_my_panel( args[0] );
        }
        else {
            gui.show_button();
        }
    }
}

时间: 2024-08-11 03:26:24

java学习笔记_GUI(4)的相关文章

java学习笔记_GUI(2)

1 import javax.swing.*; 2 import java.awt.event.*; 3 4 class Gui implements ActionListener{ 5 6 JButton button = new JButton("click me"); 7 8 public void show() { 9 JFrame frame = new JFrame(); 10 11 frame.setDefaultCloseOperation(JFrame.EXIT_ON

java学习笔记_GUI(5)

demo如何为不同的button创建对应的响应函数 1 import javax.swing.*; 2 import java.awt.event.*; 3 import java.awt.*; 4 5 class MyPanel_2 extends JPanel { 6 public void paintComponent( Graphics g ) { 7 g.fillRect(0, 0, this.getWidth(), this.getHeight()); 8 int red = (in

java学习笔记_GUI(3)

如何加入自己定义的Panel 1 import javax.swing.*; 2 import java.awt.event.*; 3 import java.awt.*; 4 5 class MyPanel extends JPanel { 6 public void paintComponent( Graphics g ) { 7 g.setColor( Color.orange ); 8 g.fillRect(20, 50, 100, 100); 9 } 10 } 11 12 13 cla

java学习笔记_GUI(1)

1 import javax.swing.*; 2 3 public class Gui { 4 public static void main(String[] args) { 5 JFrame frame = new JFrame(); 6 JButton button = new JButton("click me"); 7 8 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 9 10 frame.getContentP

Java学习笔记3-操作符

Java基本操作符:+.-.*./.%.=.==.!=.+=.-=. 优先级:先乘除后加减,如果是连接符+号会优先往前匹配,比如 a+++++b,会被解释称 a++ ++ +b,所以会报错,需要自行使用括号隔离为 (a++) + (++b). 对象的引用如果赋值给了对象的引用后,2 个对象将指向同一个引用,有一个对象的引用重新赋值后将同时影响到另一个对象,比如 ClassName classA = new ClassName(); ClassName classB = new ClassName

java学习笔记10--泛型总结

java学习笔记系列: java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note10.html,转载

Java学习笔记_25_Collections类

25.Collections类: Collections类是一个工具类,用来对集合进行操作,它主要是提供一些排序算法,包括随机排序.反相排序等. Collections类提供了一些静态方法,实现了基于List容器的一些常用算法. Collections的一些方法列表: · void sort(List): 对List内的元素进行排序. · void shuffle(List): 对List内的元素随机排序. · void reverse(List): 对List内的元素进行逆序排列. · voi

Java学习笔记心得——初识Java

初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开始走进Java的世界.  Java产生的历史 Java来自于Sun公司的一个叫Green Project中撰写的程序语言,全球信息网(World Wide Web)兴起,Java Applet成为网页互动技术的代表,特别适合于Internet应用程序开发. Java语言的特点 1.面向对象 这是Java最重要

java学习笔记8--接口总结

接着前面的学习: java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note8.html,转载请注明源地址. 生活中的接口: 什么是接口? 一个Java接口是一些方法特