Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.SecurityException:资源不可访问_Java_Swing_Security_Jtable_Tablecelleditor - Fatal编程技术网

java.lang.SecurityException:资源不可访问

java.lang.SecurityException:资源不可访问,java,swing,security,jtable,tablecelleditor,Java,Swing,Security,Jtable,Tablecelleditor,我在访问JTable的单元格时收到此异常。当我单击第一个单元格并移动到第二个单元格时,就会发生这种情况。错误开始出现在Java7更新45中。在更新51中,错误不再出现,而是单元格锁定。下面是相当长的堆栈跟踪 因为我认为这与添加到java中的新安全措施有关,所以我尝试通过对所有JAR进行签名并添加适当的清单属性来使应用程序兼容。但这个问题仍然存在。任何想法都将不胜感激 java.lang.SecurityException: Resource is not accessible at sun.sw

我在访问JTable的单元格时收到此异常。当我单击第一个单元格并移动到第二个单元格时,就会发生这种情况。错误开始出现在Java7更新45中。在更新51中,错误不再出现,而是单元格锁定。下面是相当长的堆栈跟踪

因为我认为这与添加到java中的新安全措施有关,所以我尝试通过对所有JAR进行签名并添加适当的清单属性来使应用程序兼容。但这个问题仍然存在。任何想法都将不胜感激

java.lang.SecurityException: Resource is not accessible
at sun.swing.SwingUtilities2.checkAccess(Unknown Source)
at javax.swing.text.DefaultFormatter.stringToValue(Unknown Source)
at javax.swing.text.DefaultFormatter.updateValue(Unknown Source)
at javax.swing.text.DefaultFormatter.replace(Unknown Source)
at javax.swing.text.DefaultFormatter.replace(Unknown Source)
at javax.swing.text.DefaultFormatter$DefaultDocumentFilter.replace(Unknown Source)
at javax.swing.text.AbstractDocument.replace(Unknown Source)
at javax.swing.text.JTextComponent.setText(Unknown Source)
at javax.swing.DefaultCellEditor$1.setValue(Unknown Source)
at javax.swing.DefaultCellEditor.getTableCellEditorComponent(Unknown Source)
at com.company.common.ui.table.MoneyCellEditor.getTableCellEditorComponent(MoneyCellEditor.java:67)
at javax.swing.JTable.prepareEditor(Unknown Source)
at javax.swing.JTable.editCellAt(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI$Handler.adjustSelection(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(Unknown Source)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at com.company.app.core.InactivityTrackingSystemEventQueue.dispatchEvent(InactivityTrackingSystemEventQueue.java:120)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.WaitDispatchSupport$2.run(Unknown Source)
at java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(Unknown Source)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.company.app.ui.invoice.UpdateNonInventoryItemCostPanel.showDialog(UpdateNonInventoryItemCostPanel.java:235)
at com.company.app.ui.invoice.NonInventoryItemReconciliation.showItemReconciliationDialog(NonInventoryItemReconciliation.java:74)
at com.company.app.ui.invoice.ApproveInvoicePanel$8.done(ApproveInvoicePanel.java:959)
at com.company.app.util.BackgroundWorker.handleDone(BackgroundWorker.java:79)
at com.company.app.util.BackgroundWorker$SwingWorkerImpl.done(BackgroundWorker.java:118)
at javax.swing.SwingWorker$5.run(Unknown Source)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(Unknown Source)
at sun.swing.AccumulativeRunnable.run(Unknown Source)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(Unknown Source)
at javax.swing.Timer.fireActionPerformed(Unknown Source)
at javax.swing.Timer$DoPostEvent.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at com.company.app.core.InactivityTrackingSystemEventQueue.dispatchEvent(InactivityTrackingSystemEventQueue.java:120)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.WaitDispatchSupport$2.run(Unknown Source)
at java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(Unknown Source)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.company.app.ui.invoice.ApproveInvoicePanel.showDialog(ApproveInvoicePanel.java:755)
at com.company.app.ui.quotes.purchaseorder.PurchaseOrderSupplierInvoicesListPanel$3.done(PurchaseOrderSupplierInvoicesListPanel.java:195)
at com.company.app.util.BackgroundWorker.handleDone(BackgroundWorker.java:79)
at com.company.app.util.BackgroundWorker$SwingWorkerImpl.done(BackgroundWorker.java:118)
at javax.swing.SwingWorker$5.run(Unknown Source)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(Unknown Source)
at sun.swing.AccumulativeRunnable.run(Unknown Source)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(Unknown Source)
at javax.swing.Timer.fireActionPerformed(Unknown Source)
at javax.swing.Timer$DoPostEvent.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at com.company.app.core.InactivityTrackingSystemEventQueue.dispatchEvent(InactivityTrackingSystemEventQueue.java:120)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

你能把错误的代码发到哪里去吗?我不确定我能发什么具体的代码。它基本上是对话框中的JTable。我应该指出,当我的应用程序在我的开发环境中运行时,这个问题不会发生。它仅在编译和运行应用程序时发生(它是Java Webstart应用程序)。再加上这只是从Java 7 update 45开始的,而行为在update 51中发生了轻微的变化,这让我相信这是Oracle在其Java版本中添加的新内容所带来的一个更普遍的安全问题。看起来
JFormattedTextField
中的“value”类不是公共的,就是它的
(字符串)
构造函数不是公共的。谢谢Tom,根据您的评论,我能够找到问题所在。表的自定义单元格编辑器使用自定义JTextField,该字段使用私有内部类格式化程序。这些东西是在一系列构造函数中构建的。通过将格式化程序拉到一个单独的类中并创建在构造函数之外的JTextField中,问题消失了。