私はJavaを初めて使用し、プログラムの最後の1つを理解しようとしています。
これは私がコーディングしたプログラムであり、レイアウトを使用すればまったく問題ありません。
今、私のプログラムは、キーボードでボタンを押すたびにボタンを強調表示することを想定しています(画面のボタンを押すことではありません)
実行する必要のあるアクションは、を入力するときなので、何を使用する必要があるのかわかりませんJTextArea
。私はで使用しようとしてKeyEvent
いKeyPressed
ますが、実際には機能しないため、それが正しいことかどうかはわかりません。
これは課題であり、クラスメートの一部がここで見つけた場合にグーグルで使用したくないため、現時点ではコードをここに投稿できません。(笑)
ここで必要なのは私のコードです:)
import javax.swing.*; // import all javax.swing
import java.awt.*; // import all java.awt
import java.awt.event.*;
public class Sample extends JFrame implements KeyListener { // start of the
// class
private JTextArea field = new JTextArea(10,15); // create an instance of
// JTextField
private JPanel mainPanel = new JPanel(); // create an instance of JPanel
private JPanel TopFieldPan = new JPanel();
private JPanel MainBtnsPan = new JPanel();
private JPanel FifthRowPan = new JPanel();
JPanel fifthBtn = new JPanel();
private static JButton Space = new JButton("");
public Sample() { // start of the weather constructor
Space.setPreferredSize(new Dimension(280, 45));
fifthBtn.add(Space);
TopFieldPan.add(field);
FifthRowPan.setLayout(new BoxLayout(FifthRowPan, BoxLayout.X_AXIS));
FifthRowPan.add(fifthBtn);
MainBtnsPan.setLayout(new GridLayout(5, 5, 0, 0));
MainBtnsPan.add(FifthRowPan);
mainPanel.add(TopFieldPan);
mainPanel.add(MainBtnsPan);
this.add(mainPanel);
Space.setSelected(true);
field.addKeyListener(this); // important !!!
setTitle("Typing Tutor"); // set the title to the frame
setSize(300, 300); // set the fixed size
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true); // make it visible
} // ends of the constructor
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_SHIFT) {
Space.setBackground(Color.green);
}
}
public void keyReleased(KeyEvent evt) {
Space.setBackground(null);
}
public void keyTyped(KeyEvent evt) {
// TODO Auto-generated method stub
if(evt.getKeyChar() == 'a' || evt.getKeyChar() == 'A')
{
Space.setBackground(Color.green);
}
else if(evt.getKeyChar() == 'b' || evt.getKeyChar() == 'B')
{
Space.setBackground(Color.red);
}
}
public static void main(String[] args) { // start of the main method
new Sample();
} // ends of main method
} // ends of class
コードをできるだけ単純化しようとしましたが、これが最後のコードです。
だから私は私が押すときにそれを作ろうとしています、a
さもなければA
それはそのスペースJButtonを強調するはずです。