эта программа должна рисовать заполненный квадрат в центре кадра, но пользователь должен выбрать цвет.Я не знаю, почему это не работает.
SquareComponent.java
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JComponent;
import java.awt.Color;
import javax.swing.JOptionPane;
public class SquareComponent extends JComponent{
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
String input = JOptionPane.showInputDialog("Enter a color");
switch(input.toLowerCase()) {
case "black": Square s = new Square(Color.BLACK);
s.draw(g2);
break;
case "blue": Square s1 = new Square(Color.BLUE);
s1.draw(g2);
break;
case "cyan": Square s2 = new Quadrato(Color.CYAN);
s2.draw(g2);
break;
case "gray": Square s3 = new Square(Color.GRAY);
s3.draw(g2);
break;
case "light gray": Square s4 = new Square(Color.LIGHT_GRAY);
s4.draw(g2);
break;
default: Square s5 = new Square(Color.PINK);
s5.draw(g2);
}
}
}
Square.java
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Color;
public class Square{
public Square(Color color) {
this.color = color;
}
public void draw(Graphics2D g2) {
Rectangle box = new Rectangle(20, 20, 130, 180);
g2.draw(box);
g2.setColor(color);
g2.fill(box);
}
private Color color;
}
SquareViewer.java
import javax.swing.JFrame;
public class SquareViewer{
public static void main(String[] args){
JFrame frame = new JFrame();
final int FRAME_WIDTH = 300;
final int FRAME_HEIGHT = 400;
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setTitle("Square");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SquareComponent component = new SquareComponent();
frame.add(component);
frame.setVisible(true);
}
}
Если я запускаю SquareViewer, появляется JOptionPane.Я пишу "черный", например.Он показывает черный квадрат, но с фоном JOptionPane.Почему это не работает должным образом?