我是 Java 新手,并试图为我的程序找出最后一件事。
这是我编写的程序,布局完全没问题。
现在我的程序假设在键盘上按下按钮时突出显示按钮(而不是通过按下屏幕上的按钮)
我不确定我必须使用什么,因为它需要采取的操作是当他们在JTextArea
. 我正在尝试使用KeyEvent
withKeyPressed
但不确定这是否正确,因为它并没有真正起作用。
我现在不能在这里发布我的代码,因为这是一个作业,我不希望我的一些同学在谷歌上搜索并使用它,如果他们在这里找到它。(哈哈)
这里需要的是我的代码:)
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。