- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含大约 10 个 JTextField 的 JPanel,我希望在单击键盘上的向上或向下箭头后能够将焦点设置在特定文本字段上。因此,如果中间的文本字段获得焦点,并且单击向上箭头,则焦点将转到其上方的文本字段,同样,如果单击向下箭头,焦点将转到其下方的文本字段。我创建了一个 Key Listener 的内部类,其模式类似于我的 ActionListener 类,我认为我可以做到。当我编译它时似乎出现错误
panelEncodeMain.HandleKeyListener 不是抽象的,不会重写 KeyListener 中的抽象方法 keyReleased(KeyEvent)
。
谁能帮我解决问题吗?提前致谢。
public panelEncodemain()
{
//setBackground(Color.WHITE);
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
HandleControlButton control = new HandleControlButton();
HandleKeyListener keycontrol = new HandleKeyListener();
btn_testing = new JButton("Test Focus");
btn_testing.addActionListener(control);
lbl_page = new JLabel("Page :");
lbl_line = new JLabel("Line :");
lbl_refpage = new JLabel("Ref. Page :");
lbl_refline = new JLabel("Ref. Line :");
lbl_transdate = new JLabel("Transaction Date :");
lbl_desc = new JLabel("Description :");
lbl_accountcode = new JLabel("Account Code :");
lbl_codetype = new JLabel("Code Type :");
lbl_issuedate = new JLabel("Issue Date :");
lbl_amount = new JLabel("Amount :");
lbl_page.setFont(new Font("Arial", Font.PLAIN, 20));
lbl_line.setFont(new Font("Arial", Font.PLAIN, 20));
lbl_refpage.setFont(new Font("Arial", Font.PLAIN, 20));
lbl_refline.setFont(new Font("Arial", Font.PLAIN, 20));
lbl_transdate.setFont(new Font("Arial", Font.PLAIN, 20));
lbl_desc.setFont(new Font("Arial", Font.PLAIN, 20));
lbl_accountcode.setFont(new Font("Arial", Font.PLAIN, 20));
lbl_codetype.setFont(new Font("Arial", Font.PLAIN, 20));
lbl_issuedate.setFont(new Font("Arial", Font.PLAIN, 20));
lbl_amount.setFont(new Font("Arial", Font.PLAIN, 20));
text_page = new JTextField(7);
text_line = new JTextField(5);
text_refpage = new JTextField(40);
text_refline = new JTextField(40);
text_transdate = new JTextField(10);
text_desc = new JTextField(40);
text_desc.addKeyListener(keycontrol);
text_accountcode = new JTextField(5);
text_codetype = new JTextField(5);
text_issuedate = new JTextField(10);
text_amount = new JTextField(20);
text_page.setFont(new Font("Arial", Font.PLAIN, 20));
text_line.setFont(new Font("Arial", Font.PLAIN, 20));
text_refpage.setFont(new Font("Arial", Font.PLAIN, 20));
text_refline.setFont(new Font("Arial", Font.PLAIN, 20));
text_transdate.setFont(new Font("Arial", Font.PLAIN, 20));
text_desc.setFont(new Font("Arial", Font.PLAIN, 20));
text_accountcode.setFont(new Font("Arial", Font.PLAIN, 20));
text_codetype.setFont(new Font("Arial", Font.PLAIN, 20));
text_issuedate.setFont(new Font("Arial", Font.PLAIN, 20));
text_amount.setFont(new Font("Arial", Font.PLAIN, 20));
//text_desc.setEditable(false);
//first row
c.gridx = 0;
c.gridy = 0;
c.insets = new Insets(5,0,0,10);
c.anchor = GridBagConstraints.LINE_END;
add(lbl_page, c);
c.gridx = 1;
c.anchor = GridBagConstraints.LINE_START;
add(text_page, c);
//second row
c.gridy++;
c.anchor = GridBagConstraints.LINE_END;
c.gridx=0;
add(lbl_line, c);
c.gridx = 1;
c.anchor = GridBagConstraints.LINE_START;
add(text_line, c);
//third row
c.gridy++;
c.anchor = GridBagConstraints.LINE_END;
c.gridx=0;
add(lbl_refpage, c);
c.gridx = 1;
c.anchor = GridBagConstraints.LINE_START;
add(text_refpage, c);
//fourth row
c.gridy++;
c.anchor = GridBagConstraints.LINE_END;
c.gridx=0;
add(lbl_refline, c);
c.gridx = 1;
c.anchor = GridBagConstraints.LINE_START;
add(text_refline, c);
//fifth row
c.gridy++;
c.anchor = GridBagConstraints.LINE_END;
c.gridx=0;
add(lbl_transdate, c);
c.gridx = 1;
c.anchor = GridBagConstraints.LINE_START;
add(text_transdate, c);
//sixth row
c.gridy++;
c.anchor = GridBagConstraints.LINE_END;
c.gridx=0;
add(lbl_desc, c);
c.gridx = 1;
c.anchor = GridBagConstraints.LINE_START;
add(text_desc, c);
//seventh row
c.gridy++;
c.anchor = GridBagConstraints.LINE_END;
c.gridx=0;
add(lbl_accountcode, c);
c.gridx = 1;
c.anchor = GridBagConstraints.LINE_START;
add(text_accountcode, c);
//eighth row
c.gridy++;
c.anchor = GridBagConstraints.LINE_END;
c.gridx=0;
add(lbl_codetype, c);
c.gridx = 1;
c.anchor = GridBagConstraints.LINE_START;
add(text_codetype, c);
//ninth row
c.gridy++;
c.anchor = GridBagConstraints.LINE_END;
c.gridx=0;
add(lbl_issuedate, c);
c.gridx = 1;
c.anchor = GridBagConstraints.LINE_START;
add(text_issuedate, c);
//tenth row
c.gridy++;
c.anchor = GridBagConstraints.LINE_END;
c.gridx=0;
add(lbl_amount, c);
c.gridx = 1;
c.anchor = GridBagConstraints.LINE_START;
add(text_amount, c);
//tenth row
c.gridy++;
c.gridx = 1;
c.anchor = GridBagConstraints.LINE_END;
add(btn_testing, c);
}
class HandleControlButton implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
Object source = e.getSource();
if(source == btn_testing)
{
text_desc.requestFocus();
}
}
}
class HandleKeyListener implements KeyListener
{
public void keyTyped(KeyEvent x)
{
System.out.println(x);
}
}
}
我希望能够使用键盘上的向上或向下按钮将焦点从一个文本字段转移到下一个文本字段。
最佳答案
就像评论中提到的,该错误意味着您必须实现 KeyListener 接口(interface)中的所有方法。它有三个方法
因此,您可以为这些方法添加一个空实现,但在这种情况下,最简单的方法是扩展类 KeyAdapter而不是实现 KeyListener (因为 KeyAdapter 实现了 KeyListener 并且只实现了空方法,这正是您在这里需要的)
因此您可以将 KeyListener 类更改为:
class HandleKeyListener extends KeyAdapter {
public void keyTyped(KeyEvent x) {
System.out.println(x);
}
}
然后它应该可以工作。
关于java - 我有一个 KeyListener 的内部类,它返回一个错误,提示 "is not abstract and does not override abstract method",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56662378/
有没有在OpenJDK 1.7.0_45中派生类重写基类方法,但没有@Override注解,运行时派生类实例调用基类方法的情况? class Base { public f() { }
我正在尝试在 C++ 中练习 OOP,但我遇到了有关覆盖函数的问题。在我的 Shape2D 和 Shape3D 类中,我有在 Square 和 Sphere 类(分别为 ShowArea() 和 Sh
我想控制值在槽中的保存方式以及读取槽时返回的内容。这是我的类定义: (defclass object () ((name :accessor name-access :initf
我正在尝试在 C++ 中练习 OOP,但我遇到了有关覆盖函数的问题。在我的 Shape2D 和 Shape3D 类中,我有在 Square 和 Sphere 类(分别为 ShowArea() 和 Sh
我读了section在 Scala 编程中,引入了抽象重写,但我仍然对这些修饰符的连接到底意味着什么感到困惑。使用这些修饰符的代码片段粘贴在下面: trait Doubling extends Int
阅读Javadoc对于 @Override 注释,我遇到了以下规则: If a method is annotated with thisannotation type compilers are r
我正在基于 BEP20Token 模板 (https://github.com/binance-chain/bsc-genesis-contract/blob/master/contracts/bep
关于下面提到的 3 份契约(Contract): 1) Whenever hashCode() is invoked on the same object more than once during
在 C# 中,override 默认启用,那么,是否不需要显式在基类中将方法声明为可覆盖?如果是的话 Overridable 仅限于 VB.NET 还是在 C# 中也是必需的? 因此可以覆盖哪些类型的
以下代码在 public void onClick 行生成此错误消息。 Multiple markers at this line - implements android.view.View.OnC
当我在运行 IIS 的服务器 2012R2 上托管它时,我能够使用 Autorest 和我的 api 生成代码 但是,当我尝试使用 localhost url 运行它时,我收到一条无法读取的消息。 我
代码如下。 IDE 的代码没问题,但 gradle 拒绝构建,并表示: TextAdapter is not abstract and does not override abstract metho
这个问题已经有答案了: Best practice for overriding classes / properties in ExtJS? (3 个回答) 已关闭 8 年前。 这两个覆盖有什么区别
我今天将 xcode 更新为 7。更新后,我正在处理的项目出现警告“覆盖成员函数但未标记为‘覆盖’”。由于我们的项目将“踩踏警告为错误”设置为true。我遇到了很多错误。 我仔细检查了“Other L
我试图将 Apple 的 ARKit 示例应用程序集成到我的应用程序中。由于 ARKit 只是一个附加功能,所以我需要支持较低版本的 iOS。我在所有 ARKit 示例应用程序类中添加了 @avail
我覆盖了类的 Equals() 来比较 Guid 类型的 ID 值。 然后 Visual Studio 警告: ... overrides Object.Equals(object o) but do
我正在尝试用 Java 中的 Runnable 对象创建一个基本线程。下面是我的代码: import java.lang.Thread; import java.lang.Runnable; publ
我有一个函数: int function(int a, int b = 1, int c = 2){ return a+b+c; } 我想将“c”变量的值设置为3,但不想设置“b”的值 在像
我正在尝试了解GAS的.code16行为。 在手册中,对于16位部分,对于32位操作数或指令,似乎会为指令编码生成一个66H操作数替代前缀。这是否意味着 .code16 movw %eax, %ebx
我正在尝试创建一个 JFrame,向 JFrame 添加一个 JLabel(image),但这需要我抛出 IOException,这会弄乱我的 main 方法中的 run() 。 谁能告诉我如何抛出异
我是一名优秀的程序员,十分优秀!