小编sam*_*sam的帖子

我可以保持JDialog关闭转义/输入按下吗?

我创建了一个对话框,用户可以通过用户击键来更改菜单项的键绑定.我想输入和转义为用户可以绑定的键,但它们都关闭对话框.这些印刷机怎么能被截获?

编辑:使用JOptionPane和自定义组件创建对话框

GetKeyComponent comp = new GetKeyComponent(accels, menuItem);
Object[] array = { comp };
JOptionPane optionPane = new JOptionPane(array, 
    JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
Run Code Online (Sandbox Code Playgroud)

java swing jdialog

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

当我向java HashSet添加元素时,所有元素都会发生变化

在康威的生命游戏模拟器中,我有八个代码块,看起来像这样找到一个单元格的邻域.

int count = 0;
    p.setLocation(p.x-1, p.y-1); //upper left
    if( data.contains(p) ) ++count;
    else if( addingDeadCells ) {
        deadCellsToCheck.add(p);
        for( Point z : deadCellsToCheck ) 
            System.out.println(z.toString() + " " + z.hashCode()); 
        System.out.println();
    }
Run Code Online (Sandbox Code Playgroud)

p是表示当前单元格的点,data是包含活动单元格的HashSet.为了提高效率,我只检查与活细胞相邻的死细胞,因此deadCellsToCheck是另一个HashSet,它将每一代开始为空.每次执行deadCellsToCheck.add(p)时,似乎已经在其中的所有单元都被覆盖为刚添加的单元,因为输出如下所示:

java.awt.Point[x=0,y=0] 0

java.awt.Point[x=1,y=0] 1072693248
java.awt.Point[x=1,y=0] 1072693248

java.awt.Point[x=2,y=0] 1073741824
java.awt.Point[x=2,y=0] 1073741824
java.awt.Point[x=2,y=0] 1073741824
etc...
Run Code Online (Sandbox Code Playgroud)

我不认为这可能有多种原因.有任何想法吗?

java hashset

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

标签 统计

java ×2

hashset ×1

jdialog ×1

swing ×1