Dynamische Checkboxen

Status
Nicht offen für weitere Antworten.
O

orbi

Gast
HIIIILFE !!!!

Leute ich brauche mal wieder eure Hilfe. Ich hab ein problem mit meinen kleinen Freunden den Checkboxen....

Situation ist folgende :
Ich bastel grade eine Art Nachrichten Center (so ein bischen wie bei GMX o.ä.).

Ich habe eine SQl Abfrage auf eine DB losgelassen die mir die ID , den Betreff und den Zustand (also ob gelesen oder nicht bzw. ob bereits beantwortet) zurückgibt.

Innerhalt des ResultSets ertselle ich nun für jeden Datensatz eine Checkbox (bzw. versuche es).....

Mein Problem ist nun das nur die Checkbox die durch den letzten Datensatz erzeugt wird mir ihre ID zurückgibt, was es für mich etwas schwierig macht auf die Vorhergehendenn Nachrichten zuzugreifen.....

Hier mal ein bischen Code damit ihr ungefähr nachvollziehen könnt wo der "Hund begraben" liegt....

Ich hoffe inständig das mir einer von euch sagen kann wie man das richtig hinbekommt !!!!

Code:
while(resultSetNachrichtenUebersicht.next())
{
String msgCenterNachrichtID = resultSetNachrichtenUebersicht.getString(1);
String msgCenterNachrichtBetreff = 	resultSetNachrichtenUebersicht.getString(2);
String msgCenterNachrichtSenderID = resultSetNachrichtenUebersicht.getString(3);
boolean msgCenterNachrichtBeantwortet = resultSetNachrichtenUebersicht.getBoolean(4);
boolean msgCenterNachrichtGelesen = resultSetNachrichtenUebersicht.getBoolean(5);
// hinzufügen der Komponenten entsprechend der Anzahl ergebnisse
try
{
{
chkboxMsgCenterNachrichtLoeschen = new JCheckBox(msgCenterNachrichtID);
pnlMsgCenterAnzeige.add(chkboxMsgCenterNachrichtLoeschen);
chkboxMsgCenterNachrichtLoeschen.setBounds(120, voOben+2, 20, 20);
chkboxMsgCenterNachrichtLoeschen.setBackground(new java.awt.Color(255,255,255));
// Auslesen der checkbox labels/nachrichten id´s zur überprüfung
chkboxMsgCenterNachrichtLoeschen.setName(msgCenterNachrichtID);
}
}
catch(NullPointerException npe)
{
System.out.println("da hats gekracht : "+npe);
}

und hier noch der dazugehörende ItemListener :

Code:
chkboxMsgCenterNachrichtLoeschen.addItemListener(  new ItemListener(){
 public void itemStateChanged(ItemEvent e)
{
	System.out.println("name der selektierten checkbox : "+chkboxMsgCenterNachrichtLoeschen.getName());
}
});


Gruß
Ein etwas verzweifelter Orbi
 

André Uhres

Top Contributor
orbi hat gesagt.:
..Mein Problem ist nun das nur die Checkbox die durch den letzten Datensatz erzeugt wird mir ihre ID zurückgibt..
Machst du addItemListener für jede Checkbox oder nur für die letzte?
Ausserdem müsstest du dies machen:
Code:
System.out.println("name der selektierten checkbox : "+((JCheckBox)e.getSource()).getName());
 
O

orbi

Gast
Danke das war ein großer schritt in die richtige richtung ,hatte "clevererweise" nur einen listener reingeschrieben bzw. der den ich erstellt hatte war hinter dem resultset, wurde also nur einmal erzeugt....

Soll aber vorkommen das man etwas verwirrt ist nach einen 11.5 stunden arbeitstag ^^

Nun hätte ich direkt noch eine andere Frage, da ich ja das löschen der Nachrichten (sowohl einzeln als auch mehrere) möglich machen will war mein Gedanke nen Array zu erstellen und dort jeh nachdem ob die Checkbox einer Nachricht aktiviert wurde oder auch nicht die ID der entsprechenden Nachricht hinzuzufügen oder zu entfernen.

Gibts da eine cleverere Methode oder ist das so in ungefähr das was man als richtig erachten könnte ?
 

André Uhres

Top Contributor
orbi hat gesagt.:
..da ich ja das löschen der Nachrichten (sowohl einzeln als auch mehrere) möglich machen will
war mein Gedanke nen Array zu erstellen und dort jeh nachdem ob die Checkbox einer Nachricht aktiviert wurde
oder auch nicht die ID der entsprechenden Nachricht hinzuzufügen oder zu entfernen...
Ein Array bringt wohl nichts. Erstens kann man da nichts entfernen oder hinzufügen und
zweitens hast du ja schon alles was du brauchst in den Checkboxen.
 
O

orbi

Gast
:?:
Warum bringt ein Array nichts? aus dem könnte ich doch dann die zur löschung anstehenden Nachrichten bzw. deren Ids auslesen?

aber auf den 2. Blick muss ich dir recht geben das mit dem löschen aus dem Array könnte schwierig werden :oops:

hättest du evtl einen besseren Vorschlag wie ich die Id´s der Nachrichten in einer liste sammeln könnte und bei deaktivierung der Checkbox auch wieder daraus entfernen könnte ?

mir läuft so langsam die zeit davon ansonsten würde ich nicht so "dappisch" fragen sondern noch ein wenig rumprobieren...

Gruß
Robin
 

André Uhres

Top Contributor
Tut mir leid, ich versteh dein Problem nicht: du hast ja alle Informationen in den Checkboxen.
Wozu die gleiche Informationsstruktur noch einmal erstellen?
 
O

orbi

Gast
muss ganz ehrlich zugeben mein problem ist das mir nicht ganz klar ist, wie ich z.b. bei betätigen des Löschen Buttons alle id´s der Selektierten Boxen auslese, aber so wie ich mich kenne mache ich es mir mal wieder unötig kompliziert..

deiner(André) Aussage nach müsste es ja recht simpel sein, kannste mir mal nen winck mit dem zaunpfahl geben (oder mir den zaunpfahl um die Ohren hauen) damit ich drauf komme ?
 

André Uhres

Top Contributor
orbi hat gesagt.:
..mir nicht ganz klar ist, wie ich z.b. bei betätigen des Löschen Buttons alle id´s der Selektierten Boxen auslese..
Code:
       Component[] comps = jPanel1.getComponents();
        JCheckBox box = null;
        for (int i = 0; i < comps.length; i++) {
            if(comps[i] instanceof JCheckBox){
                box = (JCheckBox)comps[i];
                System.out.println("Name: "+box.getName()+"  Selected: "+box.isSelected());
            }
        }
 
O

orbi

Gast
Dank dir 1000 mal , ich werde das morgen direkt mal antesten...

und nochmal danek an alle die sich die mühe gemacht haben sich mit dem thread zu beschäftigen!!!

Gruß
Robin
 
O

orbi

Gast
das klappt perfekt, DANKE !!!!!

hab mir noch ne kleine if bedingung dazu geschrieben und nun klappt alles so wie ich mir das vorgestellt habe ...

:applaus: :applaus: :applaus:

So nun werde ich mal schaun das ich die ganze Sache fertig bekomme und meinem Kunden dann eine voll funtionstüchtige Version in die Hand drücken kann...

Ich würde dir am liebsten ein virtuelles Bier spendieren @ André :D

Gruß
Robin
 
O

orbi

Gast
Hätte ich ein anständiges Gehalt und nicht nur mein AZUBI cash würde ich das ernsthaft in Erwägung ziehen, aber so währen die Überweisungskosten wahrscheinlich höher als der Betrag den ich dir zukommen lassen könnte :wink:
 

AlArenal

Top Contributor
André Uhres hat gesagt.:
Werde mich sehr davor hüten hier von jemandem Geld anzunehmen.
Das mit dem Bier wär aber nicht schlecht, wenn das nur ginge.. :(

Zum Glück geht das nicht. Microsoft würde sonst alle Bierbrauer aufkaufen und aus dem Markt drängen, um das eigene Microsoft Beer zu verkaufen. MS-typisch würde das natürlich nciht so dolli schmecken, wie die Sorten, die wir uns gerne in die Hirse ballern. Stattdessen wäre es mehr ein zerkauter Maniok-Brei, der durch die Spucke zum Gären angeregt wird... Ständig hätte man mit Flaschen zu kämpfen, die sich entweder nicht öffnen lassen, oder wo nichts drin ist. Spontan würden Flaschen auch mal einfach zu Bruch gehen und die trinken dürfte man erst nachdem man den RFID-Chip der Flasche eingescannt und die Daten zusammen mit persönlichen ANgaben an MS übermittelt hat, die dann die Authentizität bestätigen müssen - vorher ließe sich die Flasche nicht öffnen...

Eher gäbe ich mir die Kugel...
 
O

orbi

Gast
das du das mit der kohle nur scherzeshalber meintest ist mir schon klar :D

aber zu mindest das virtuelle bier kann ich dir reichen

bier.jpg
:wink:

kk ich hör jetzt mal lieber auf sonst bekomm ich noch ärger wegen spammens....

Gruß
Robin
 
O

orbi

Gast
Hab nun zu guter letzt doch noch ein Problem bekommen, habe die Anwendung nun soweit fertig das die Nachrichten gelöscht bzw. betrachtet werden können. Nun ist folgendes Problem aufgetreten, beim ersten anzeigen des Panels geht noch alles gut, sprich ich kann die gewünschte Nachricht nach selektion der entsprechenden Checkbox anzeigen lassen.
Zur anzeige der Nachricht wird das Nachrichtenübersichtspanel geschlossen, wenn ich nun aber das nachrichtenübersichtspanel welches die Checkboxen enthält erneut öffnen will bekomme ich als status der checkboxen nur noch false zurück.....

Evtl. ist ja schonmal einer von euch über ein ähnliches Problem gestolpert und kann mir nen heissen tip geben woran es hängt....


Gruß
Robin
 

André Uhres

Top Contributor
orbi hat gesagt.:
..wenn ich nun aber das nachrichtenübersichtspanel welches die Checkboxen enthält
erneut öffnen will bekomme ich als status der checkboxen nur noch false zurück...
Du brauchst ja nur vor dem Öffnen des Nachrichtenübersichtspanels zu gucken ob es schonmal erzeugt wurde,
d.h. ob die Referenz auf das Panel nicht mehr null ist. In dem Fall erzeugst du kein neues Panel sondern nimmst
einfach das alte.
 

André Uhres

Top Contributor
orbi hat gesagt.:
..und wie stelle ich das genau an ?
Code:
/*
 * NachrichtenCenterDemo.java
 */
//package schnipsel3;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class NachrichtenCenterDemo extends JFrame {
    public NachrichtenCenterDemo() {
        super("NachrichtenCenter Demo");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 300);
        setLocationRelativeTo(null);
        toolbar = new JToolBar();
        btUebersicht = new JToggleButton("Übersicht zeigen/verbergen");
        btUebersicht.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                btUebersichtActionPerformed(evt);
            }
        });
        toolbar.add(btUebersicht);
        getContentPane().add(toolbar, BorderLayout.NORTH);
    }
    private void btUebersichtActionPerformed(ActionEvent evt) {
        if(btUebersicht.isSelected()){
            if(uebersicht == null){
                uebersicht = new JPanel();
                JCheckBox box = null;
                for (int i = 0; i < 4; i++) {
                    box = new JCheckBox();
                    box.setName(""+i);
                    box.addActionListener(new ActionListener(){
                        public void actionPerformed(ActionEvent e) {
                            JCheckBox box = (JCheckBox)e.getSource();
                            System.out.println(box.getName()+" "+box.isSelected());
                        }
                    });
                    uebersicht.add(box);
                }
            }
            add(uebersicht);
            showStatus();
        }else{
            remove(uebersicht);
        }
        validate();
        repaint();
    }
    private void showStatus(){
        Component[] comps = uebersicht.getComponents();
        JCheckBox box = null;
        for (int i = 0; i < comps.length; i++) {
            if(comps[i] instanceof JCheckBox){
                box = (JCheckBox)comps[i];
                System.out.print(box.isSelected()+" ");
            }
        }
        System.out.println("");
    }
    public static void main(String args[]) {
        new NachrichtenCenterDemo().setVisible(true);
    }
    private JPanel uebersicht;
    private JToggleButton btUebersicht;
    private JToolBar toolbar;
}
 
O

orbi

Gast
Danke dir (mal wieder)
So was ähnliches habe ich mir schon gedacht, habs aber nicht wirklich zum laufen gebracht :oops:
Ich werde das ganze mal in die Ap reinbasteln und schaun das das ding endlich funktioniert.

Gruß
Robin
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Dynamische ListView-Größe, die bei Fenstergrößenänderung sich anpasst AWT, Swing, JavaFX & SWT 19
M Dynamische Zellengröße und Zeilenumbruch AWT, Swing, JavaFX & SWT 7
M Java FX dynamische Diagramme AWT, Swing, JavaFX & SWT 0
Q-bert Dynamische Komponente erzeugen AWT, Swing, JavaFX & SWT 6
4a61766120617274697374 dynamische Tree View AWT, Swing, JavaFX & SWT 2
P JavaFX Dynamische TableView AWT, Swing, JavaFX & SWT 14
G Dynamische ComboBox AWT, Swing, JavaFX & SWT 3
B Swing Dynamische JList mit Bildern AWT, Swing, JavaFX & SWT 4
S Jtable dynamische Spaltenbreite AWT, Swing, JavaFX & SWT 5
B SWT Dynamische GUI (Layoutmanager?) AWT, Swing, JavaFX & SWT 2
P Dynamische Seite zum basteln für den User AWT, Swing, JavaFX & SWT 8
B SWT TreeViewer dynamische Anzeige von Icons AWT, Swing, JavaFX & SWT 3
J Java - dynamische Anpassung an Fenstergröße? AWT, Swing, JavaFX & SWT 4
B Swing Dynamische JMenuBar AWT, Swing, JavaFX & SWT 2
C Swing Dynamische JComboBox (Filter) AWT, Swing, JavaFX & SWT 28
W "Dynamische JComboBoxes" AWT, Swing, JavaFX & SWT 5
N Swing Dynamische Controls AWT, Swing, JavaFX & SWT 5
C JTable dynamische erweitern AWT, Swing, JavaFX & SWT 2
T 2D-Grafik Statisches Hintergrundbild, dynamische Bilder drüber AWT, Swing, JavaFX & SWT 2
N Dynamische JFreechart updated UI nicht AWT, Swing, JavaFX & SWT 5
G Große dynamische ContextMenus erzeugen (Eclipse RCP) AWT, Swing, JavaFX & SWT 4
F Swing Dynamische Größenanpassung AWT, Swing, JavaFX & SWT 4
trash Dynamische JTable (SQL) AWT, Swing, JavaFX & SWT 5
L Dynamische Textgröße bei Buttons AWT, Swing, JavaFX & SWT 3
lordcarlos Dynamische und interaktive grafik AWT, Swing, JavaFX & SWT 5
T Swing JTable dynamische Zeilenhöhe AWT, Swing, JavaFX & SWT 5
U Dynamische Panel hinzufügen AWT, Swing, JavaFX & SWT 6
N Swing Dynamische JRadioButtons und Visual Editor AWT, Swing, JavaFX & SWT 4
Q Dynamische Zahl und Positionierung von Objekten AWT, Swing, JavaFX & SWT 5
S Swing Dynamische JPanels: Vertikales Strecken verhindern AWT, Swing, JavaFX & SWT 4
hdi dynamische Iteration über Components AWT, Swing, JavaFX & SWT 3
E Dynamische JComboBox AWT, Swing, JavaFX & SWT 3
F dynamische Ausgabe eines extenen Programms umleiten AWT, Swing, JavaFX & SWT 6
F Dynamische Swing Elemente AWT, Swing, JavaFX & SWT 10
G Dynamische JMenuBar AWT, Swing, JavaFX & SWT 2
T Dynamische Anpassung einer jCheckBox AWT, Swing, JavaFX & SWT 11
O Bindings, dynamische Verbindung (Vorbau mit Netbeans) AWT, Swing, JavaFX & SWT 10
G Dynamische Menüs mit Liste von MRU Dateien AWT, Swing, JavaFX & SWT 2
X Dynamische linien (Position und Länge) AWT, Swing, JavaFX & SWT 4
L Dynamische Buttons erstellt, aber wie ein Event zuweisen? AWT, Swing, JavaFX & SWT 11
T dynamische anzeige? AWT, Swing, JavaFX & SWT 4
S Dynamische Ausgabe im JTextField AWT, Swing, JavaFX & SWT 7
K dynamische jlabels AWT, Swing, JavaFX & SWT 21
M dynamische Grafik in JFrame einbetten AWT, Swing, JavaFX & SWT 2
G JTable dynamische Darstellung der ankommenden Daten AWT, Swing, JavaFX & SWT 19
G JTextField & Dynamische Grössenänderung? AWT, Swing, JavaFX & SWT 8
K TableLayout - dynamische Elemente zu spät ge-updated AWT, Swing, JavaFX & SWT 3
T Dynamische GUI's AWT, Swing, JavaFX & SWT 10
T Dynamische Look&Feels AWT, Swing, JavaFX & SWT 4
K dynamische Bilder laden AWT, Swing, JavaFX & SWT 5
U JavaFX CheckBoxen in GUI verschieben AWT, Swing, JavaFX & SWT 20
D JavaFX Dynamisch erzeugte Checkboxen aus VBox auslesen AWT, Swing, JavaFX & SWT 3
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
T Dynamisch mehrere Checkboxen anlegen AWT, Swing, JavaFX & SWT 2
D Seltsames Verhalten meiner CheckBoxen AWT, Swing, JavaFX & SWT 7
S Swing Checkboxen in Einträgen des Typs DefaultMutableTreeNode AWT, Swing, JavaFX & SWT 23
M Swing CheckBoxen werden nicht in jTable angezeigt AWT, Swing, JavaFX & SWT 3
S AWT Erstellen von Checkboxen AWT, Swing, JavaFX & SWT 33
M Checkboxen Namen setzten über Parameter => Abfragen? AWT, Swing, JavaFX & SWT 2
F checkboxen auslesen/ansprechen AWT, Swing, JavaFX & SWT 1
X Checkboxen erstellt mit MouseClicked event AWT, Swing, JavaFX & SWT 10
J Hintergrundfarbe von CheckBoxen in einer JTable AWT, Swing, JavaFX & SWT 4
T JTree mit Checkboxen anpassen AWT, Swing, JavaFX & SWT 7
R Checkboxen - Event mit Controller abfangen AWT, Swing, JavaFX & SWT 7
S swt table mit checkboxen: wie nachträglich im code setzen? AWT, Swing, JavaFX & SWT 6
D Mehrere CheckBoxen im TableModel wechselseitig ausschließen AWT, Swing, JavaFX & SWT 5
G Namen mehrer Checkboxen abfragen AWT, Swing, JavaFX & SWT 7
F Checkboxen in JTable abfragen AWT, Swing, JavaFX & SWT 2
M@rk Jtree Checkboxen AWT, Swing, JavaFX & SWT 2
G JTree mit Checkboxen und Problem mit isSelected() AWT, Swing, JavaFX & SWT 2
G Aktionen bei Checkboxen AWT, Swing, JavaFX & SWT 2
R Checkboxen plazieren AWT, Swing, JavaFX & SWT 3
M JList mit checkboxen AWT, Swing, JavaFX & SWT 2
TheJavaKid .isSelected() bei AWT Checkboxen? AWT, Swing, JavaFX & SWT 2
F Checkboxen eines anderen Panels ansprechen AWT, Swing, JavaFX & SWT 3
C Checkboxen bzw. CheckboxGroup AWT, Swing, JavaFX & SWT 3
T Checkboxen layouten AWT, Swing, JavaFX & SWT 20

Ähnliche Java Themen

Neue Themen


Oben