Swing GroupLayout unter Java 1.5

Manuh

Mitglied
Hallo, ich habe in NetBeans OHNE den Designer ein Layout erstellt wozu ich die GroupLayouts der Swing Bibliothek benutzt habe.

Nun lief auf meinem Entwicklungs PC alles perfekt. Als ich allerdings das Programm auf einem Mac mit der Java Version 1.5 starten wollte bekam ich eine Exception:

Java:
Exception in thread “main” java.lang.NoClassDefFoundError: javax/swing/GroupLayout$Group

Hab schon nach einer Lösung gesucht, allerdings treffen die alle nur auf den Designer in NetBeans zu, und da ich das Programm ja eigenständig gecodet habe funktioniert es leider nicht.

Kann mir jemand helfen?

Gruß
Manuel
 
In den Properties der Form kann man den "Layout Generation Style" einstellen. Hier musst du "Swing Layout Extension Library" wählen. Das entsprechende JAR musst du dann natürlich mit einbinden, wenn du das Programm auslieferst.
 
Danke, hab ich aber denn die Properties der Form nicht nur dann, wenn ich mit dem Layout Manager arbeite?
Wie gesagt, ich habe eine leere Klasse erstellt und die GUI dann komplett selbst gecodet.
 
Mh, also die hab ich bei den integrierten Bibliotheken in den Projekt Eigenschaften auch mit angegeben.. also die "Swing Layout Extensions" aber leider funktioniert das so nicht. 🙁
 
Also ich bin beim selben Fehler wie am Anfang. Hab eine Bibliothek für die MySQL Verbindung eingebunden, und einmal das Swing Paket. Die MySQL Verbindung klappt wunderbar, das GroupLayout leider nicht. Es kommt die selbe Exception wie im ersten Post dieses Threads.

Aber danke schonmal!
 
Weil du die Klasse Grouplayout auf dem Paket javax.swing importieren bzw. verwenden willst. Die gibt es dort aber erst ab Java 1.6.
Mit den Swing Layout Extensions heißt das Paket org.jdesktop.layout
 
Danke

Java:
import java.org.jdesktop.layout.GroupLayout;

wird von NetBeans als Fehler markiert. Also das "java" ist rot unterstrichen. Wenn ich jedoch nur

Java:
import org.jdesktop.layout.GroupLayout;

benutze, dann kompiliert er richtig, aber funktionieren tut es leider immer noch nicht 🙁
 
Ja, wieder das selbe =(

Hier mal der Ausschnitt der mir Probleme macht:

Java:
   GroupLayout layout = new GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane1, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 900, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 800, GroupLayout.PREFERRED_SIZE)
                .addContainerGap(25, Short.MAX_VALUE))
        );
 
Hab jetzt folgende Importe:

Java:
import java.sql.*;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import org.jdesktop.layout.GroupLayout;
import org.jdesktop.layout.GroupLayout.*;

Und wegen dieser Stelle kann er nicht kompilieren:

Java:
layout.setHorizontalGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane1, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 900, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 800, GroupLayout.PREFERRED_SIZE)
                .addContainerGap(25, Short.MAX_VALUE))
        );

Das Alignment.LEADING und Alignment.TRAILING sowie das .addCompenent und .addContainerGap werden rot unterstrichen.

Compiler Error:

Code:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code
        at anzeige.Uebersicht.<init>(Uebersicht.java:109)
        at anzeige.createWindow$2.actionPerformed(createWindow.java:119)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1225)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1266)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2475)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
 
Zuletzt bearbeitet von einem Moderator:
In der alten Version ist das mit den Alignment-Konstanten wohl noch anders gelöst. Schau halt in die Dokumentation und pass deinen Code an.
 
Danke! Habs angepasst. Jetzt hab ich ne andere Exception auf dem Clientenrechner

Code:
Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: javax.swing.JTable.setAutoCreateRowSorter(Z)V
        at anzeige.Uebersicht.<init>(Uebersicht.java:100)
        at anzeige.createWindow$2.actionPerformed(createWindow.java:119)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:334)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1051)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1092)
        at java.awt.Component.processMouseEvent(Component.java:5583)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
        at java.awt.Component.processEvent(Component.java:5348)
        at java.awt.Container.processEvent(Container.java:2010)
        at java.awt.Component.dispatchEventImpl(Component.java:4050)
        at java.awt.Container.dispatchEventImpl(Container.java:2068)
        at java.awt.Component.dispatchEvent(Component.java:3885)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
        at java.awt.Container.dispatchEventImpl(Container.java:2054)
        at java.awt.Window.dispatchEventImpl(Window.java:1791)
        at java.awt.Component.dispatchEvent(Component.java:3885)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Wieso hat der jetzt Probleme mit dem RowSorter?
 
Weil es auch den RowSorter in Java 5 noch nicht gab. Und einiges andere sicher auch nicht. Wieso installierst Du nicht einfach Java 6 auf dem Mac? Falls Java 5 ein hartes Requirement ist, dann solltest Du auf dem Entwicklungsrechner nicht gegen ein Java 6 entwickeln.

Ebenius
 
Diese Methode gibt es in Java 1.5 nicht.
Wenn dein Programm unter 1.5 laufen soll, musst es auch gegen eine 1.5er API entwickeln.
 

Neue Themen


Zurück
Oben