Layouts mit if-Abfrage ueberpruefen

bandy

Bekanntes Mitglied
Hallo,

ich habe ein Programm geschrieben, welches einen aeusseren- und einen inneren Panel hat. Im aeusseren- befinden sich die RadioButtons und im inneren - 4 Buttons. Die RadioButtons geben die Moeglichkeit zwischen verschiedenen Layouts fuer die Buttons zu waehlen. Fuer die Buttons habe ich eine Methode geschrieben vom Typ JPanel und wenn ich dort einzeln verschiedene Layouts waehle erscheinen die Buttons auch in verschiedenen Layouts. Nun kommt das Problem. Ich will natuerlich, dass das Programm das selber macht wenn ein entsprechender RadioButton gewaehlt wird und knoepfte diese Layouts an if-Abfragen, das ganze sieht dann so aus:

Java:
if(radiobutton1.isSelected())
JPanelInnen.setLayout(new GridLayout(0,4));

if(radiobutton2.isSelected())
JPanelInnen.setLayout(new GridLayout(0,2));


Aber dies funktioniert nicht, es loesst eine Exception aus.

Code:
Exception in thread "main" java.lang.NullPointerException

Warum?:bahnhof: Wie kann man diese Abfrage durchfuehren?:bahnhof: Gibt es vielleicht andere Moeglichkeiten zu ueberpruefen, welches RadioButton gewaehlt ist, als mit der Methode
Java:
isSelected()
?
Geht es mit Listener?:bahnhof:
 

Volvagia

Top Contributor
Eine Variable speichert, wo das Objekt zu finden ist. Wenn du eine Variable deklarierst verweißt sie natürlich auf nichts (= 'null'), deshalb kann natürlich auch auf keine Klassenvariable und -methoden zugegriffen werden. Wo nichts ist kann nichts gelesen werden.

Vergleiche:

Java:
import javax.swing.JRadioButton;

public class Klasse
{
	public static void main(String[] args)
	{
		JRadioButton radioButton = null;
		System.out.println(radioButton.isSelected());
	}
}
Exception fliegt, weil die Variable auf keine Instanz verweißt.
Java:
import javax.swing.JRadioButton;

public class Klasse
{
	public static void main(String[] args)
	{
		JRadioButton radioButton = new JRadioButton();
		System.out.println(radioButton.isSelected());
	}
}
False wird ausgegeben, da der RadioButton nicht selected ist. (Standart)
Java:
import javax.swing.JRadioButton;

public class Klasse
{
	public static void main(String[] args)
	{
		JRadioButton radioButton = new JRadioButton(((String)null), true);
		System.out.println(radioButton.isSelected());
	}
}
True wird ausgegeben, da der RadioButton von der Instanzierung an ausgewählt ist.
 

XHelp

Top Contributor
Wo reingeschrieben? Wie meinst du denn das?:bahnhof:
Wenn NullPointerException auftaucht greifst du auf ein Objekt zu, welches eigentlich null ist.
Da in deinem kleinem Code-Ausschnitt nur 3 Variablen auftauchen: radiobutton1, radiobutton2, JPanelInnen müsste mind. 1 davon null sein.
Ansonsten müsste ja bei der Exception auch Zeilenangaben sein.
 

Marco13

Top Contributor
Eine Variable speichert, wo das Objekt zu finden ist. Wenn du eine Variable deklarierst verweißt sie natürlich auf nichts (= 'null'), deshalb kann natürlich auch auf keine Klassenvariable und -methoden zugegriffen werden. Wo nichts ist kann nichts gelesen werden.

Um mal ... pedantisch ... oder präzise...? ... zu werden: Doch, das geht. Man kann dafür sorgen, dass die zwei Zeilen
Java:
        MagicClass object = null;
        System.out.println(object.value);
genau SO compiliert und ausgeführt werden können, ohne dass es zu einer Exception kommt. Vielleicht mal als Quizfrage posten :reflect:
 

XHelp

Top Contributor
Um mal ... pedantisch ... oder präzise...? ... zu werden: Doch, das geht. Man kann dafür sorgen, dass die zwei Zeilen
Java:
        MagicClass object = null;
        System.out.println(object.value);
genau SO compiliert und ausgeführt werden können, ohne dass es zu einer Exception kommt. Vielleicht mal als Quizfrage posten :reflect:
Java:
public class MagicClass {
  public static String value = "Ahoi!";
}
? :D
 

bandy

Bekanntes Mitglied
OK.
Ich denke ich weiss wo der Fehler liegt.

Aber noch eine Frage ueber die RadioButtons, kann man mit denen direkt Werte ausgeben, ich meine wenn man auf RadioButton direkt klickt, dass es gleich den Wert true liefert wie bei der JComboBox, oder muss man erst immer die RadioButtons an ein Button binden, welcher dann ueberprueft welcher RadioButton geklickt wurde?
 

Marco13

Top Contributor
Was meinst du?
Java:
radioButton.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
        System.out.println("selected? "+radioButton.isSelected());
    }
});
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Welche Layouts anwenden? AWT, Swing, JavaFX & SWT 2
N Layouts AWT, Swing, JavaFX & SWT 2
M Java FX Layouts übereinander statt nebeneinander AWT, Swing, JavaFX & SWT 4
D Zwischen Null-Layouts wechseln AWT, Swing, JavaFX & SWT 2
T JavaFX Flexible Layouts dynamisch erstellen / Design-Inspirationen AWT, Swing, JavaFX & SWT 8
K JavaFX Erzeugen dynamischer Layouts in fxml AWT, Swing, JavaFX & SWT 3
R GUI Layouts AWT, Swing, JavaFX & SWT 6
F Swing Anpassen des Layouts AWT, Swing, JavaFX & SWT 3
U LayoutManager Probleme mit Layouts AWT, Swing, JavaFX & SWT 5
G Swing Buttons in Layouts frei platzieren AWT, Swing, JavaFX & SWT 7
S Layouts, mehrere Buttons nebeneinander AWT, Swing, JavaFX & SWT 2
J LayoutManager Hilfe bei Wahl des Layouts AWT, Swing, JavaFX & SWT 9
R Wie Vorgehen bei fundamentaler Veränderung des Layouts während des Programmablaufs? AWT, Swing, JavaFX & SWT 19
JStickman Layouts bei SWT AWT, Swing, JavaFX & SWT 6
M Verschiedene Layouts anzeigen AWT, Swing, JavaFX & SWT 5
hdi Probleme mit Layouts AWT, Swing, JavaFX & SWT 12
S Layouts AWT, Swing, JavaFX & SWT 5
K 2 Panels und Layouts AWT, Swing, JavaFX & SWT 2
S Verschachtelte Layouts AWT, Swing, JavaFX & SWT 4
P Frage zu Layouts AWT, Swing, JavaFX & SWT 4
Juelin if Abfrage funktioniert nicht richtig AWT, Swing, JavaFX & SWT 10
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
L 2D-Grafik Frage zu Ellipse2D.Double, Abfrage, ob Punkt enthalten ist funktioniert nicht AWT, Swing, JavaFX & SWT 3
D Javafx Combobox Abfrage aus mysql AWT, Swing, JavaFX & SWT 8
N Swing Abfrage durch JTextField nach Button betätigung AWT, Swing, JavaFX & SWT 3
JavaMachtMichFertig JavaFX Gui - Löschbutton in Tabelle anzeigen, die mittels MySQL Abfrage gefüllt wird AWT, Swing, JavaFX & SWT 5
J ActionListener per Innere Klasse oder e.getActionCommand() if-Abfrage? AWT, Swing, JavaFX & SWT 12
I JButton Abfrage AWT, Swing, JavaFX & SWT 2
A Ja/Nein Abfrage in jButton AWT, Swing, JavaFX & SWT 3
W Dartprogramm - Abfrage der Mauspos. AWT, Swing, JavaFX & SWT 4
S JComboBox mit Ergebnis einer SQL Abfrage füllen AWT, Swing, JavaFX & SWT 39
N Aufgabe: ActionEvent - Abfrage AWT, Swing, JavaFX & SWT 7
N Problem mit ActionEvent - Abfrage AWT, Swing, JavaFX & SWT 10
B Methode setzt nicht das Layout in einer if-Abfrage AWT, Swing, JavaFX & SWT 13
S Ergebnisvektor aus DB Abfrage in JTable anzeigen AWT, Swing, JavaFX & SWT 5
H JCheckBox - Ist die Abfrage wirklich so umständlich ? AWT, Swing, JavaFX & SWT 3
A JFrame: Abfrage ob schliessen oder nicht? AWT, Swing, JavaFX & SWT 8
F Abfrage, ob Key gedrückt gehalten wird ?? AWT, Swing, JavaFX & SWT 2
T Doppelte Abfrage eine Checkbox vermeiden AWT, Swing, JavaFX & SWT 2
A Abfrage nach Sichtbarkeit vom JFram AWT, Swing, JavaFX & SWT 3
thE_29 TableRenderer und JPanel => Abfrage auf Componenten Posit AWT, Swing, JavaFX & SWT 2
T mousemoved abfrage - aber welches event wenn maus weg? AWT, Swing, JavaFX & SWT 2
O Abfrage ob eine bstimmte Komponente den Focus hat AWT, Swing, JavaFX & SWT 4
P User-Rechte fuer Frames ueberpruefen und deren Schliessung AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben