私は、マウス座標に基づいて画面に矩形を描画するjavaを使用してプログラムを作成しています。しかし、私はこの四角形の正しい色を得ることができません。目標は、ユーザーが画面をクリックして色を選択した後、正しい色で矩形を描画することです。私はケースシナリオを試みましたが、正しく動作するようにはできません。動作していない部分はコメントされています。矩形描画の問題Java Swing GUI
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.geom.*;
import java.awt.event.*;
public class test extends JFrame implements ActionListener, MouseListener, KeyListener {
Shape box = new Rectangle2D.Float(10, 10, 10, 10);
public test() {
setSize(250,150);
addMouseListener(this);
addKeyListener(this);
Color bgColor = new Color(125,125,125);
setBackground(bgColor);
}
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
test frame = new test();
frame.setVisible(true);
}
});
}
public void actionPerformed(ActionEvent ae) {
}
public void drawRectangle(int x, int y) {
Graphics g = this.getGraphics();
// KeyEvent e = this.getKeyChar();
// switch (test.keyTyped()) {
// case b:
g.drawRect(x, y, x, y);
g.setColor(Color.BLUE);
g.fillRect(x, y, 2, 2);
// case r:
// g.drawRect(x, y, x, y);
// g.setColor(Color.RED);
// g.fillRect(x, y, 2, 2);
// case y:
// g.drawRect(x, y, x, y);
// g.setColor(Color.Yellow);
// g.fillRect(x, y, 2, 2);
// case g:
// g.drawRect(x, y, x, y);
// g.setColor(Color.GREEN);
// g.fillRect(x, y, 2, 2);
//}
}
int x, y;
public void mouseClicked(MouseEvent e) {
x = e.getX();
y = e.getY();
repaint();
}
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
c = Character.toLowerCase(c);
}
@Override
public void paint(Graphics g) {
g.setColor(Color.white);
g.drawString("Click anywhere to draw a rectangle", 50, 250);
g.drawString("Choose color by pressing the corresponding key on your keyboard: ", 50, 270);
g.setColor(Color.blue);
g.drawString("B: Blue ", 50, 285);
g.setColor(Color.red);
g.drawString("R: Red ", 95, 285);
g.setColor(Color.yellow);
g.drawString("Y: Yellow ", 140, 285);
g.setColor(Color.green);
g.drawString("G: Green ", 195, 285);
drawRectangle(x, y);
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
}
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
あなたのタグやタイトルから削除「アプレット」 - あなたはJFrameの上のではなく、コード内でアプレットを作成していないが。 –