私は自分のスイングアプリケーションを実行し、:私はこの解決策を見つけたJava例外「AWT-EventQueueの-0」とjava.lang.ClassCastException
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException
at javax.swing.LayoutComparator.compare(Unknown Source)
at javax.swing.LayoutComparator.compare(Unknown Source)
at java.util.TimSort.countRunAndMakeAscending(Unknown Source)
at java.util.TimSort.sort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at java.util.ArrayList.sort(Unknown Source)
at java.util.Collections.sort(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.enumerateAndSortCycle(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getFocusTraversalCycle(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.LayoutFocusTraversalPolicy.getFirstComponent(Unknown Source)
at javax.swing.SortingFocusTraversalPolicy.getDefaultComponent(Unknown Source)
at java.awt.FocusTraversalPolicy.getInitialComponent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(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$500(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$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.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$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.SequencedEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(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$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.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$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
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)
が、これが完全に問題を解決するかどうかはわかりません。 は、私が変更した場合:
public class MainFrame extends JFrame {
...
}
public static void main(String[] args){
new MainFrame();
}
に:
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MainFrame();
}
});
}
は、私は、これは完全にoccuringからの例外の上排除し、唯一の理由は、エラーの原因となるイベントディスパッチスレッドの外にフォームを作成することがされたことを確認することができますか?ここで
は自分のアプリケーションのコードを単純化されています
public class App {
//MyFrame can be show independently or in a TabbedPane
public static class MyFrame extends JFrame {
public MyFrame() {
setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
for (int i = 0; i < 8; i++) {
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createTitledBorder("Panel " + i));
panel.add(new JLabel("label " + i));
add(panel);
}
pack();
setVisible(true);
}
}
public static class MainTabsFrame extends JFrame {
public MainTabsFrame() {
JTabbedPane tabsPane = new JTabbedPane();
JFrame frame = new MyFrame();
tabsPane.addTab("My Frame 1", frame.getContentPane());
frame.setVisible(false);
add(tabsPane);
pack();
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
}
public static void main(String[] args) {
new MainTabsFrame();
}
}
[SSCCE](http://sscce.org)を入力してください。 –
"時には初めから"という意味を明確にすることはできますか? – ChadNC
アプリケーションの起動中にエラーが発生しました。私はスイングEDTにスローされているからといって正確に言うことはできません。さらに、すべての実行でエラーが発生するわけではありません。 – hal