Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Chapter12;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- 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(600, 300);
- frame.setVisible(true);
- }
- // слушатель для кнопки текста
- class LabelListener implements ActionListener{
- public void actionPerformed (ActionEvent event){
- if (label.getText().equals("Ouch!")) label.setText("I'm a label");
- else label.setText("Ouch!");
- }
- }
- // слуашатель для кнопки круга
- class ColorListener implements ActionListener{
- public void actionPerformed (ActionEvent event){
- frame.repaint();
- }
- }
- // рандомный цвет круга
- 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(70, 70, 100, 100);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement