Enterキーでボタンを押すにはどうすればいいのでしょうか
色を指定するチェックボックスがあり,表示ボタンで指定された色の混色を表示するプログラムです.
このプログラムに,Enterキーの入力に表示ボタンを押したのと同じ効果をもたせたいのですが,どうすればいいでしょうか.
また,requestFocusInWindow()をどこに挿入すればうまくいくのでしょうか.
***************************************************************
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class Q1 extends Applet implements ActionListener {
// チェックボックス3つとボタン1つ
Checkbox cbx1, cbx2, cbx3;
int red = -1, green, blue;
Button btn;
public void init() {
cbx1 = new Checkbox("Red");
cbx2 = new Checkbox("Green");
cbx3 = new Checkbox("Blue");
add(cbx1);
add(cbx2);
add(cbx3);
btn = new Button("Paint");
btn.addActionListener(this);
add(btn);
addKeyListener(new KeyAdapter() {
public void KeyPressed(KeyEvent ke) {
if (ke.getKeyCode() != KeyEvent.VK_ENTER) return;
SetColor();
repaint();
}
});
}
// ボタンを押したとき
public void actionPerformed(ActionEvent e) {
SetColor();
repaint();
}
// 色の設定
public void CheckColor() {
if (cbx1.getState()) red = 255; else red = 0;
if (cbx2.getState()) green = 255; else green = 0;
if (cbx3.getState()) blue = 255; else blue = 0;
}
// 色付き長方形の表示
public void paint(Graphics g) {
if (red != -1) {
g.setColor(new Color(red, green, blue));
g.fillRect(10, 50, getSize().width - 20, getSize().height - 40);
}
}
}
*******************************************************************
お礼
「赤紫は一次元では表現できない」 久しぶりに、頭に電気が流れた気がしました。 生物的観点まで突っ込んだ丁寧な解説ありがとうございます。