JButton Java JFrame
Формулировка задачи:
Как правильно приделать к вот такому коду парочку кнопок?
package praktika1; import java.awt.*; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Rectangle2D; public class zadanie2 extends JFrame { Color square1 = new Color(248, 244, 255); Color square2 = new Color(0x000000); Color cheker1 = new Color(0xF0FF9F); Color cheker2 = new Color(0x170F33); public void paint(Graphics g) { int row; int col; int x,y; for ( row = 0; row < 8; row++ ) { for ( col =0; col < 8; col++) { x = col * 60+35; y = row * 60+35; if ( (row % 2) == (col % 2) ) g.setColor(square1); else g.setColor(square2); g.fillRect(x, y,60, 60); } } for ( row = 0; row < 3; row++ ) { for ( col =0; col < 8; col++) { if ( (row % 2) == (col % 2) ){ x = col * 60+45; y = row * 60+350; g.setColor(cheker1); g.fillOval(x, y, 40,40);} } } for ( row = 0; row < 3; row++ ) { for ( col =0; col < 8; col++) { if ( (row % 2) != (col % 2) ){ x = col * 60+45; y = row * 60+45; g.setColor(cheker2); g.fillOval(x, y, 40,40);} } } } public static void main(String args[]) { zadanie2 check = new zadanie2(); check.setTitle("Шашки"); check.setSize(600,600); check.setDefaultCloseOperation(EXIT_ON_CLOSE); check.setVisible(true); } }
Решение задачи: «JButton Java JFrame»
textual
Листинг программы
import java.awt.*; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Rectangle2D; public class zadanie2 extends JFrame { //Константы цветов final Color COLOR_SQUARE1 = new Color(248, 244, 255); final Color COLOR_SQUARE2 = new Color(0x000000); final Color COLOR_SQUARE3 = new Color(255, 0, 0); final Color COLOR_SQUARE4 = new Color(255,255,0); final Color COLOR_CHEAKER1 = new Color(0xF0FF9F); final Color COLOR_CHEAKER2 = new Color(0x170F33); final Color COLOR_CHEAKER3 = new Color(0,0,255); final Color COLOR_CHEAKER4 = new Color(255,0,255); Color square1 = COLOR_SQUARE1; Color square2 = COLOR_SQUARE2; Color cheker1 = COLOR_CHEAKER1; Color cheker2 = COLOR_CHEAKER2; //Панель с полем ChekerPanel chekerPanel = new ChekerPanel(); //Кнопки JButton changeColor=new JButton("Change Color"); JButton changeColorCheker=new JButton("Change color cheker"); JButton changeCheker=new JButton("Change cheker"); //Создаем конструктор public zadanie2(){ //Убираем менеджер расположения setLayout(null); //Устанавливаем кнопки и панель в определенное место changeColor.setBounds(530, 50, 120, 25); changeColorCheker.setBounds(530, 100, 120, 25); changeCheker.setBounds(530, 150, 120, 25); chekerPanel.setBounds(0, 0, 550, 600); //Изменяем цвет поля по нажатию на кнопку changeColor.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if (square1.equals(COLOR_SQUARE1)) { square1 = COLOR_SQUARE3; square2 = COLOR_SQUARE4; repaint(); } else { square1 = COLOR_SQUARE1; square2 = COLOR_SQUARE2; repaint(); } } }); //Изменяем цвет шашек changeColorCheker.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if (cheker1.equals(COLOR_CHEAKER1)) { cheker1 = COLOR_CHEAKER3; cheker2 = COLOR_CHEAKER4; repaint(); } else { cheker1 = COLOR_CHEAKER1; cheker2 = COLOR_CHEAKER2; repaint(); } } }); //Добавляем на фрейм кнопки и панель add(changeColor); add(changeColorCheker); add(changeCheker); add(chekerPanel); } public static void main(String args[]) { zadanie2 check = new zadanie2(); check.setTitle("Шашки"); check.setSize(680,600); check.setDefaultCloseOperation(EXIT_ON_CLOSE); check.setVisible(true); } //Внутренний класс с панелью private class ChekerPanel extends JPanel{ public ChekerPanel() { } public void paint(Graphics g) { int row; int col; int x,y; for ( row = 0; row < 8; row++ ) { for ( col =0; col < 8; col++) { x = col * 60+35; y = row * 60+35; if ( (row % 2) == (col % 2) ) g.setColor(square1); else g.setColor(square2); g.fillRect(x, y,60, 60); } } for ( row = 0; row < 3; row++ ) { for ( col =0; col < 8; col++) { if ( (row % 2) == (col % 2) ){ x = col * 60+45; y = row * 60+350; g.setColor(cheker1); g.fillOval(x, y, 40,40);} } } for ( row = 0; row < 3; row++ ) { for ( col =0; col < 8; col++) { if ( (row % 2) != (col % 2) ){ x = col * 60+45; y = row * 60+45; g.setColor(cheker2); g.fillOval(x, y, 40,40);} } } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д