小编Nic*_*cks的帖子

为什么JComboBox上的itemStateChanged在更改时被调用两次?

我正在使用带有ItemListener的JComboBox.更改值时,将调用itemStateChanged事件两次.第一个调用,ItemEvent显示所选的原始项目.第二次,它显示用户刚刚选择的项目.这是一些测试人员代码:

public Tester(){

    JComboBox box = new JComboBox();
    box.addItem("One");
    box.addItem("Two");
    box.addItem("Three");
    box.addItem("Four");

    box.addItemListener(new ItemListener(){
        public void itemStateChanged(ItemEvent e){
            System.out.println(e.getItem());
        }
    });

    JFrame frame = new JFrame();
    frame.getContentPane().add(box);
    frame.pack();
    frame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)

因此,当我将组合框从"一"改为"三"时,控制台显示:

One
Three
Run Code Online (Sandbox Code Playgroud)

有没有一种方法我可以使用ItemEvent告诉它,它是第二项(即用户选择的项目)?如果有人可以解释为什么它被调用两次,那也会很好!

谢谢

java swing jcombobox itemlistener

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

多列的唯一约束

我正在使用oracle表并在四列上创建了一个唯一约束.约束中的这些列是否可以为NULL?

oracle unique-constraint

36
推荐指数
2
解决办法
7万
查看次数

更改JTable上的Ctrl +单击行为

当按下键盘按钮(即CTRL按钮)并选择一行时,是否有一种简单的方法来操纵JTable上的控件以提供不同的功能?我被要求创建一个表,其中行上的CTRL +单击(鼠标单击)将仅取消选择所选行,从不选择行.如果用户按CTRL +单击未选择的行,则不会发生任何事情.

我已经能够创建一个表,并禁用CTRL + A(全选)等功能,并且我已经能够检查生成MouseEvent时是否按下了控制按钮,但我似乎无法想象如何调整CTRL + Click.这是一些代码:

package nicky;

import javax.swing.*;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.*;

public class TableTester extends JPanel {
    public TableTester() {
        super(new GridLayout(1,0));

        final String[] columnNames = {"First Name",
                                      "Last Name",
                                      "Sport",
                                      "# of Years",
                                      "Vegetarian"};

        final Object[][] data = {
            {"Tom",   "Roberts","Athletic", new Integer(5),  new Boolean(false)},
            {"Sarah", "Watt",   "Football", new Integer(3),  new Boolean(true)},
            {"Laura", "Brown",  "Swimming", new Integer(2),  new Boolean(false)},
            {"Simon", "Smith",  "Tennis",   new Integer(20), new Boolean(true)},
            {"Paul",  "Jones",  "Rugby",    new Integer(10), new …
Run Code Online (Sandbox Code Playgroud)

java swing jtable

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

不等于和大于数字之间的差异

我有一个问题:

select *
from randomtable
where randomnumber <> 0

"random_number"列永远不会是负数.

所以,如果我将查询写为:

select *
from randomtable
where randomnumber > 0

有什么重大区别吗?

sql oracle

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

标签 统计

java ×2

oracle ×2

swing ×2

itemlistener ×1

jcombobox ×1

jtable ×1

sql ×1

unique-constraint ×1