小编Joe*_*ker的帖子

关注 JButtons 在 Java 中实际上是如何工作的?

我在 Java Swing 中发现了一个奇怪的异常。当用户按下空格键时,按时间顺序添加到 UI 的第一个 JButton 总是会触发,假设他在执行此操作之前没有单击另一个按钮。如果调用getRootPane().setDefaultButton(JButton)和 ,甚至会发生此行为。JButton.requestFocus()当请求 JButton 焦点时,似乎至少有 2 种不同的“焦点”。“焦点”或突出显示之一是按钮上文本周围的虚线矩形,而另一个是指定按钮周围的较粗轮廓。

只要按下空格键,就会触发带有虚线轮廓文本的按钮。每当按下回车键时,带有粗边框的按钮就会触发。

我准备了一个可编译的最小示例来说明这种行为。根本不涉及键映射/绑定。

import java.awt.Container;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

public class ButtonFocusAnomalyExample extends JFrame {
    public ButtonFocusAnomalyExample() {
        super();
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        int frameWidth = 300;
        int frameHeight = 300;
        setSize(frameWidth, frameHeight);
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        int x = (d.width - getSize().width) / 2;
        int y = (d.height - getSize().height) …
Run Code Online (Sandbox Code Playgroud)

java swing focus button

5
推荐指数
1
解决办法
294
查看次数

如何在Assembly中的XOR语句中指定3字节存储的大小?

在我的IA-32处理器Linux程序集中,我有两个存储空间.

inbuf: resb 3
outbuf: resb 4
Run Code Online (Sandbox Code Playgroud)

inbuf真的只需要3个字节,我不想浪费任何内存.现在,假设我想用这样的零覆盖它们:

xor [inbuf], inbuf
xor [outbuf], outbuf
Run Code Online (Sandbox Code Playgroud)

nasm说我需要指定操作大小,这是可以理解的.现在outbuf这个没问题,因为我可以写

xor dword [outbuf], outbuf
Run Code Online (Sandbox Code Playgroud)

相反,但显然,任意大小的大小关键字都不是3字节.我该如何指定大小inbuf

我不是真的在寻找一个用零覆盖存储的解决方案,我猜其他的工作也一样,但这也解决了我的问题如何使用像

mov eax, inbuf
Run Code Online (Sandbox Code Playgroud)

没有得到"未指定大小"错误.

x86 assembly intel nasm

1
推荐指数
1
解决办法
156
查看次数

初始化BufferedReader(JAVA)

我目前正在编写一个方法来测试输入字符串(密码)是否包含字典的一部分.字典是一个简单的txt文件,每行一个字.我现在想检查字典的每一行,如果它包含在输入字符串中.下面的代码对我有用:

public boolean dictionaryCheck(String pLine)
{
  BufferedReader myReader;
  String currentLine;
  try
  {
    myReader = new BufferedReader(new FileReader("dict.txt"));
    while(myReader.readLine() != null)
    {
      currentLine = myReader.readLine();
      if(pLine.contains(currentLine))
      {
        return false;
      }
    }
  }
  catch (Exception e){System.out.println("Error: " + e);}
  return true;
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我使用任何参数String运行该方法时,我收到以下错误:

Error: java.lang.NullPointerException

所以我假设BufferedReader没有正确初始化.

有关如何解决此问题的任何建议?代码对我来说似乎很好,但我可能会忽略一个错误.

提前致谢,

乔库克

java nullpointerexception bufferedreader

0
推荐指数
1
解决办法
3995
查看次数