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'对象具有不同的行索引.
我如何同步这两个?
我的本地开发计算机上有一个有效的密钥库,其中包含用于通过 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中有一个二维数组,如下所示:
每个元素/工作都有:
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)
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) 我有以下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应该做这样的事情?
我已经实现了一个扩展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 ×4
sorting ×2
arrays ×1
javascript ×1
jtable ×1
jtree ×1
keystore ×1
ssl ×1
swing ×1
tablemodel ×1