小编Lui*_*rno的帖子

在对JTable进行排序后,JTable和DefaultTableModel的行索引失去了同步

JAVA NETBEANS

// resultsTable, myModel
JTable resultsTable;
DefaultTableModel myModel; //javax.swing.table.DefaultTableModel
myModel = (DefaultTableModel) resultsTable.getModel();

// event of clicking on item of table
String value = (String) myModel.getValueAt(resultsTable.getSelectedRow(), columnIndex)
Run Code Online (Sandbox Code Playgroud)

我使用JTable和DefaultTableModel来查看各种信息的表,我想获得表的所选索引的某个列的值.

我上面编写的代码工作正常,除非:我使用GUI的类型(单击我要在表上排序的字段名称)表格已正确排序但在此之后,当我选择一行时,它获取的值排序前的那一行.这意味着在排序(使用JTable的GUI)之后,'myModel'和'resultsTable'对象具有不同的行索引.

我如何同步这两个?

java sorting synchronization jtable tablemodel

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

复制 java 密钥库

我的本地开发计算机上有一个有效的密钥库,其中包含用于通过 HTTPS 访问 Web 服务的证书。

我通过以下方式在我的项目中访问此密钥库:

System.setProperty("javax.net.ssl.truststore", "C:\\<workspaceprojectPath>\\SIPkeystore\\truststore.jks"); // sollte wohl auch ohne Keystore klappen
System.setProperty("javax.net.ssl.keyStore", "C:\\<workspaceprojectPath>\\SIPkeystore\\SIPkeystore.jks");  
System.setProperty("javax.net.ssl.keyStorePassword", "SECRET");
Run Code Online (Sandbox Code Playgroud)

现在我想从另一个项目访问该证书。我在那里提供了另一个(本地)项目目录中密钥库的相同(完整)路径。

显然,jvm 仍然找到该路径并且正在设置该属性,但是在访问 Web 服务时,我收到相同的错误消息,就好像我根本没有添加密钥库一样。

当尝试运行该应用程序时,我得到一个

sun.security.validator.ValidatorException: PKIX path building failed:   
     sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid 
     certification path to requested target
Run Code Online (Sandbox Code Playgroud)

是否可以复制现有的密钥库?当我们将应用程序部署到服务器时,这一点也很重要。该应用程序将作为独立的 jar 运行。(没有网络服务器)

编辑: 好的,复制密钥库似乎不是问题,因为我可以在使用原始密钥库文件的本地副本时运行原始应用程序。看来这是一个配置问题。

java ssl keystore

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

用Java排序2维数组 - 跳过第一个索引

我在Java中有一个二维数组,如下所示:

每个元素/工作都有:

  • 索引[0]中的作业号;
  • 作业到达时间在索引[1] ; 和
  • 索引中的作业突发时间[2]
jobs[0][0] = 1
jobs[0][1] = 0
jobs[0][2] = 5

jobs[1][0] = 2
jobs[1][1] = 2
jobs[1][2] = 19

jobs[2][0] = 3
jobs[2][1] = 4
jobs[2][2] = 10
Run Code Online (Sandbox Code Playgroud)

首先,我想根据到达时间对它们进行排序,这是根据索引[1],幸运的是我使用这个代码:

Arrays.sort(jobs, new Comparator<int[]>(){
    public int compare(int[] a, int[] b) {
        return a[1] - b[1];
    }
});
Run Code Online (Sandbox Code Playgroud)


现在,我的问题是我想根据索引[2]的突发时间对其进行排序.这是TWIST ......如何根据跳过第一个元素的突发时间(索引[2])对其进行排序?我希望job [0]保持在数组的顶部,并按索引[2]对其余元素进行排序 - 突发时间.像这样:

jobs[0][0] = 1
jobs[0][1] = 0
jobs[0][2] = 5

jobs[1][0] = 3
jobs[1][1] = 4 …
Run Code Online (Sandbox Code Playgroud)

java arrays sorting multidimensional-array data-structures

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

奇怪的javascript函数参数值

我有以下JavaScript函数:

function changeSelectedCustomerNumber(CustNumber){
    var field = document.getElementById('SelectedNumber');
    field.value = '00'+CustNumber;
}
Run Code Online (Sandbox Code Playgroud)

通过按以下选项调用:

<select style="width:100px;" name="bySubj">
    <option onclick="changeSelectedCustomerNumber(00510443);">blatest</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我有几个复选框.他们应该做的是将传递的数字放在一个单独的输入字段中.

我的问题是,在调试JS函数时,在选项中单击后, custnumber包含166263.

我假设转换为num将删除前导零,但参数如何转换为这样.

有没有理由说JavaScript应该做这样的事情?

javascript

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

Swing从容器中删除组件并重新绘制

我已经实现了一个扩展JTree的导航树.对于节点上的每次单击,在删除上一个表单后,将显示节点提供的表单.

如果节点未提供任何表单,则只需移动旧表单.

我的问题是显示第一个表单的部分有效,但是当我点击没有表单的节点(null)时,旧表单仍然显示,直到我调整窗口大小.

这是我的代码:

public class NavigationTree extends EncoTree {

private Container target = null;

public NavigationTree(Color from, Color to, Container trg) {
    super(from, to);
    this.target = trg;

    this.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent me){
            TreePath tps = getSelectionPath();
            if(tps != null){
                cstmMutableTreeNode node = (cstmMutableTreeNode) getLastSelectedPathComponent();
                target.removeAll();     
                if(node.form != null){
                    node.form.construct();
                    node.form.setPreferredSize(new Dimension(200, target.getSize().height));

                    target.add(node.form, BorderLayout.PAGE_START);

                }
                target.validate();
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

}

据我了解,repaint()只要我重新验证容器,就应该在EDT中将请求排入队列.

那么,为什么显示第一个表单而不必调整窗口大小,只是删除组件不?

java swing jtree mouselistener

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