相关疑难解决方法(0)

Java中的键绑定与键侦听器

我注意到在Java/Swing中,似乎至少有两种不同的方法来处理关键事件:

每个人的优点/缺点是什么,何时你更喜欢一个而不是另一个?

java swing key-events keylistener key-bindings

10
推荐指数
2
解决办法
7103
查看次数

JTextField限制字符数量输入并仅接受数字

这是我有关如何限制字符输入长度的代码

class JTextFieldLimit extends PlainDocument {
  private int limit;
  // optional uppercase conversion
  private boolean toUppercase = false;

  JTextFieldLimit(int limit) {
   super();
   this.limit = limit;
   }

  JTextFieldLimit(int limit, boolean upper) {
   super();
   this.limit = limit;
   toUppercase = upper;
   }

    @Override
  public void insertString
    (int offset, String  str, AttributeSet attr)
      throws BadLocationException {
   if (str == null) return;

   if ((getLength() + str.length()) <= limit) {
     if (toUppercase) str = str.toUpperCase();
     super.insertString(offset, str, attr);
     }
   }
}
Run Code Online (Sandbox Code Playgroud)

可以实现 txtSample.setDocument(new JTextFieldLimit(30));

这里是我只接受数字的原因(虽然不需要,但它接受小数)

class …
Run Code Online (Sandbox Code Playgroud)

java swing jtextfield documentfilter

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

java - 允许我只输入单个数字的JTable单元格/列

java - 我想要一个JTable单元格/列,只允许我输入一位数字(如1到9).我怎样才能做到这一点?

我试过这个,但我按下的数字在单元格中出现了两次.

table.addKeyListener(new KeyAdapter() {         
        public void keyPressed(KeyEvent e) {
            System.out.println("pressed..."+e.getKeyChar());
            char key = e.getKeyChar();
            int selectedColumn = table.getSelectedColumn();
            int selectedRow = table.getSelectedRow();
            if(table.getValueAt(selectedRow, selectedColumn) == null)
            table.setValueAt(key, selectedRow, selectedColumn);
        }
   });
Run Code Online (Sandbox Code Playgroud)

java swing jtable tablecelleditor

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