JCheckbox

Status
Nicht offen für weitere Antworten.

H3llGhost

Bekanntes Mitglied
Hallo Leute,

ich habe Probleme mit einer Checkbox!
Kann mir jemand helfen?
Ich bekomme es einfach nicht hin, dass die Checkbox sichtbar wird.
Hier der Code:

Code:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;

public class AsuroGUI extends JFrame implements ActionListener
{
   private JPanel einPanel;
   private Dimension d;
   private static AsuroGUI ag;
   
   public AsuroGUI() {
     setTitle("Asuro Assembler-Programm-Generator");
     d = Toolkit.getDefaultToolkit().getScreenSize();
     setSize(d.width, d.height); // Größe des Rahmens in Pixel
     setDefaultCloseOperation(EXIT_ON_CLOSE); // Schließt den Rahmen

     einPanel = new JPanel();  // Erzeugung der "Leinwand" für die Komponenten
     einPanel.setLayout(null); // Keinen Layoutmanager verwenden
     einPanel.setBackground(Color.GRAY);
     
     JCheckBox cb1 = new JCheckBox("Ein Colt für alle Fälle", false);
     cb1.setText("test");
     cb1.setBounds(150, 130, 150, 130);
     
     einPanel.add(cb1);
     
     setVisible(true); // Zum Schluss das ganze sichtbar machen
     setResizable(true);
   }

   public static void main(String[] args) {
     ag = new AsuroGUI();
   }
  
   public void actionPerformed(ActionEvent evt)
   {
     Object quelle = evt.getSource();
     if (quelle == exitItem)
     {
       System.exit(0);
     }
   }
}
 
S

SlaterB

Gast
es fehlt
getContentPane().add(einPanel);

z.B. direkt vor
setVisible(true);
 

The_S

Top Contributor
es fehlt noch ein

Code:
setContentPane(einPanel);

Kannst du auch begründen, warum du hier ein Null-Layout und keinen Layoutmanager verwendest?
 

anfänger15

Bekanntes Mitglied
vlt. solltest du einPanel noch zum JFrame adden.

versuch mal folgenden Code vor setVisible(true) einzufügen
Code:
getContentPane().add(einPanel);


//edit zu langsam
 

The_S

Top Contributor
Woher soll dein JFrame denn sonst wissen, was es darstellen soll?

Du kannst dir auch ne Heizung kaufen und die auf volle pulle aufdrehen. Nützt dir aber nichts, wenn sie nicht angeschlossen ist ;) .
 

H3llGhost

Bekanntes Mitglied
Eine kleine Frage noch am Rande:

Hiermit überprüft man ja ob es gesetzt worden ist:
cb2.isSelected()

Aber wie kann ich das für 10-Stück machen ohne eine for-Schleife zu benutzen?
Kann mir jemand einen Tipp geben?
DANKE!
 
S

SlaterB

Gast
mindestens 1x pro Woche liest man hier im Forum
"wie kann ich abc 10x machen ohne Schleife?"

was bringt Menschen dazu, sowas zu fragen?
wie kann man Brot in Brotscheiben verwandeln, ohne ein Messer zu benutzen?
wie bringt man einen Baum zum wachsen, ohne Licht?
 

mikachu

Top Contributor
nimm die checkboxen in eine jgroup und frage die ab, welche checkbox selektiert wurde.
(sinnvoll, wenn nur eine checkbox selektiert sein darf)
 

The_S

Top Contributor
mikachu hat gesagt.:
nimm die checkboxen in eine jgroup und frage die ab, welche checkbox selektiert wurde.
(sinnvoll, wenn nur eine checkbox selektiert sein darf)

Naja, 1.) hat er dann trotzdem ne Schleife und 2.) verwendet man für sowas JRadioButtons.
 

mikachu

Top Contributor
hm, das iss wahr ;)

aber es ist glaub ich zeit, mal auf seine frage einzugehen :)

er könnte ja an jede checkbox nen listener dran setzen, der dann irgendwas macht

#edit 1:
mit for-schleife musst du die checkboxen in eine liste oder einen array packen, über den/die du dann iterieren kannst.
 

H3llGhost

Bekanntes Mitglied
Ich hatte vor ein Array mit einer for-Schleife zu erstellen und das dann mit einem Funktionsaufruf zu übergeben.
Deswegen halt die for-Schleife ... ;-)
 

The_S

Top Contributor
naja, 1.) Array und dann alle in ner Schleife durchlaufen lassen
2.) Mit getComponents alle Componenten durchgehen und mittels instanceof überprüfen ob es sich um eine CheckBox handelt
 

The_S

Top Contributor
Du erzeugst ein Array vom Typ JCheckbox

Code:
JCheckBox[] checkar = new JCheckBox[10];

du erzeugst deine checkboxen

Code:
for (int i = 0; i < checkar.length; i++) {
   checkar[i] = new JCheckBox("My Box " + i);
}

und kannst sie in der Schleife auch wieder auf selektiert/nicht selektiert überprüfen

Code:
for (int i = 0; i < checkar.length; i++) {
   System.out.println(checkar[i].isSelected());
}
 

H3llGhost

Bekanntes Mitglied
Danke!
Es funktioniert ... :)

Könntet ihr mir vielleicht noch einen funktionstüchtigen Code für eine Drop-Down-Liste geben?
Das wäre sau nett!
Danke im Voraus!
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben