Java学習ノート(9):グラフィックインタフェース


一:最初の図形――ボタン
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class tx implements ActionListener {
     //  ActionListener  
    JButton button;//    

    public static void main(String[] args) {
     
        tx gui = new tx();
        gui.go();
    }

    public void go()
    {
     
        JFrame frame = new JFrame();
       button = new JButton("click me");//        

        button.addActionListener(this);//     

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//          

        frame.getContentPane().add(BorderLayout.CENTER,button);//       
        
        frame.setSize(300,300);//               

        frame.setVisible(true);
    }
    public void actionPerformed(ActionEvent event)//actionPerformed    
    {
     
        button.setText("ywq i love you");
    }
}

二:二番目の図形——二重ボタンと変色テキストの内容
/*  :         :               class    implements ActionListener{}
 //  label       
    class LabelListener implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
        }
    }
    //             
    class ColorListener implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
        }
    } 
*/
//       ,ht 
import javax.swing.*;
import java.awt.*;

public class ht extends JPanel{
       //     JPanel
    public void paintComponent(Graphics g){
     
        Graphics2D g2d = (Graphics2D) g;

        //      
        int red = (int) (Math.random()*255);
        int green = (int) (Math.random()*255);
        int blue = (int) (Math.random()*255);
        Color startColor = new Color(red,green,blue);

        //      
        red = (int) (Math.random()*255);
        green = (int) (Math.random()*255);
        blue = (int) (Math.random()*255);
        Color endColor = new Color(red,green,blue);

        //    
        GradientPaint gradient = new GradientPaint(70,70,startColor,150,150,endColor);
        g2d.setPaint(gradient);
        //    
        g2d.fillOval(70,70,100,100);
    }
}

//  
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class gui3c{
     
    public static int i = 1;

    public static int getI() {
     
        return i;
    }

    public static void setI(int i) {
     
        gui3c.i = i+1;
    }

    JFrame frame;
    JLabel label;
    public static void main(String[] args) {
     
        gui3c gui = new gui3c();
        gui.go();
    }

    public void go()
    {
     
        //    
        frame =new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //  color  
        JButton colorButton = new JButton("change color");
        colorButton.addActionListener(new ColorListener());

        //  label  
        JButton labelButton = new JButton("change label");
        labelButton.addActionListener(new LabelListener());

        //  label
        ht draw =new ht();
        label = new JLabel("i am a label");

        // label,label  ,color   ht      frame
        frame.getContentPane().add(BorderLayout.SOUTH,colorButton);
        frame.getContentPane().add(BorderLayout.EAST,labelButton);
        frame.getContentPane().add(BorderLayout.CENTER,draw);
        frame.getContentPane().add(BorderLayout.WEST,label);

        //       
        frame.setSize(300,300);
        frame.setVisible(true);
    }

    //  label   
    class LabelListener implements ActionListener
    {
     
        public void actionPerformed(ActionEvent event)
        {
     
            //      
            label.setText("         "+"*"+i);
            setI(i);
        }
    }
    //         
    class ColorListener implements ActionListener
    {
     
        public void actionPerformed(ActionEvent event)
        {
     
            //  repaint()    paintComponent     
            frame.repaint();
        }
    }
}

なお、1.JFrameの使い方2.ボタン作成JButton、テキスト作成JLabel単一ボタンと複数のボタンActionListenerの書き方が異なる