Java学習ノート(9):グラフィックインタフェース
一:最初の図形――ボタン
二:二番目の図形——二重ボタンと変色テキストの内容
なお、1.JFrameの使い方2.ボタン作成JButton、テキスト作成JLabel単一ボタンと複数のボタンActionListenerの書き方が異なる
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の書き方が異なる