java - 识别文本区域对象中的 KeyListener 继承
问题描述
我下面的 java 代码试图做一个 keyListener 继承。问题是私有静态 JTextArea jt;在 CustomKeyListener 类中未被识别。我不知道我认为这两个类是由 jt.addKeyListener(new CustomKeyListener()); 连接的。但它没有被连接。我的代码没有编译。
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class text11 extends JFrame implements ActionListener{ /**
*
*/
private static final long serialVersionUID = 1L;
// JFrame
static JFrame f;
// text area
private static JTextArea jt;
// main class
public static void main(String[] args)
{
// create a new frame to store text field and button
f = new JFrame("textfield");
// create a label to display text
// create a object of the text class
text11 te = new text11();
// create a text area, specifying the rows and columns
jt = new JTextArea(" ", 20, 20);
JPanel p = new JPanel();
// add the text area and button to panel
p.add(jt);
f.add(p);
// set the size of frame
f.setSize(300, 300);
jt.addKeyListener(new CustomKeyListener());
f.show();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jt.addKeyListener(new CustomKeyListener());
}
}
class CustomKeyListener implements KeyListener{
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER){
jt.setText(jt.getText() + " sam");
}
}
public void keyReleased(KeyEvent e) {
}
}
解决方案
这不是最佳实践,但您可以更改jt
为public static JTextArea jt;
,然后在CustomKeyListener
课堂上调用它text11.jt
例如:text11.jt.setText(text11.jt.getText() + " sam");
推荐阅读
- javascript - 在时间跨度内收集键盘输入
- arrays - 从python中的数字列表中选择并显示奇数索引
- angular - 捕获包含在 Angular Observable 中的 JSONAPI
- django - 如何在 Django 中删除列表对象?
- angular - 如何在 PrimeNg 多选组件中将某些列显示为选中,而某些列未选中
- android - NavHostFragment 与 FragmentContainerView [Android]
- python - Python:从每个新行从特定列表索引开始的列表创建数据框
- spring - 无法使用 Spring Boot App 连接到 Mongo DB Atlas
- python - “尝试相对导入超出顶级包”
- jquery - JQuery 日期选择器在 Laravel 的动态输入表单中不起作用