Portal > Foren > Java > Desktop-Applikationen und Grafik > Zugriff auf JPanel-Komponenten von außen
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 02.08.2005, 18:07 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 18.07.2005
Beiträge: 12
Standard Zugriff auf JPanel-Komponenten von außen

Moin moin!

Wie kann ich auf Komponenten einer JPanel von außen zugreifen?
z.B.:

PHP-Code:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JCheckBox;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;

public class 
Test
    
extends JFrame {
  private 
JButton button;
  private 
JPanel[] panels;
  private 
JCheckBox[] chbox;
  private 
int anzPanelanzChbox;

  public 
Test(int anzPanelint anzChbox)
  {
    
super();
    
this.anzPanel anzPanel;
    
this.anzChbox anzChbox;
    
panels = new JPanel[anzPanel];
    
chbox = new JCheckBox[anzChbox];
    
init();
  }

  public static 
void main(String[] args)
  {
    
Test test = new Test(new Integer(args[0]).intValue(),
                         new 
Integer(args[1]).intValue());
    
test.setBounds(100100500200);
    
test.setVisible(true);
    
test.setDefaultCloseOperation(EXIT_ON_CLOSE);
  }

  public 
void init()
  {
    
Container pane getContentPane();
    
pane.setLayout(new FlowLayout());
    
    
// JPanels in Schleife initialisieren
    
for (int i 0anzPaneli++)
    {
      
panels[i] = new JPanel();
      
// ... und in einer inneren Schleife mit Komponenten füllen
     
for (int j 0anzChboxj++)
      {
        
chbox[j] = new JCheckBox("Chbox " " Panel " i);
        
panels[i].add(chbox[j]);
      }
      
pane.add(panels[i]);
    }
    
button = new JButton("Select all");
    
pane.add(button);
  }

Und beim Klick auf "Select all"-Button sollten alle Checkboxen selektiert werden. Meine GUI sollte dynamisch bleiben, d.h. Anzahl der Checkboxen wird erst zur Laufzeit ermittelt.

Wie mach' ich dat??? :confused:
eugenet ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.08.2005, 18:51 Nach oben    #2
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 581
Standard

Ich glaube nicht, dass es so einfach funktioniert.
Leg doch einfach die Checkboxen in einen Vecotor. Zum platzieren holst du sie dann hervor, und wenn du alle selekteiren möchtest, dann lass doch kurz den Vector durchlaufen und setz die Elemente auf selektiert.

Gruß
Sparrow
sparrow ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.08.2005, 18:51 Nach oben    #3
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Container definiert die Methode "getComponent(int index)" und "getComponentCount()" - wenn ich mich nicht irre.
Diese Informationen plus ein "instanceof" sollten bewirken, was du haben willst.

Ansonsten: Mit sauberer Programmierung (sprich: Dem speichern von solchen notwendigen Daten irgendwo so, dass man darauf zugreifen kann) wäre das wesentlich einfacher...
In deinem Fall könntest du nen Getter für "chbox" hinzufügen.

Edit: Was zum Geier machst du da eigentlich?
Warum nimmst du nicht nen gescheiten LayoutManager (in diesem Fall: GridBagLayout)?
Bevor du jetzt mit "zu schwer" ankommst: GridBag made easy.
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.08.2005, 19:35 Nach oben    #4
Benutzer
 
Registriert seit: 01.07.2005
Beiträge: 37
Standard

du kannst allerdings auch die Checkboxen auf "Protected" setzen und in deinen ActionListener einen Constructor einbauen, dem du deine Fensterklasse übergibst.
Wenn du das Objekt dann über diese Referenz ansprichst, kannst du auf alle Public und Protected Sachen locker zugreifen.
Hot-Thunder ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.08.2005, 11:43 Nach oben    #5
Neuer Benutzer
 
Registriert seit: 18.07.2005
Beiträge: 12
Standard

Thanx u all, people!

Aus euren Antworten kann man was lernen, danke!
Der Vorschlag von pago war für meine Problematik optimal. Ich kann jetzt weiter bauen :cool:. Bin happy.

P.S. Ich baue eine Anwendung für Verarbeitung von XML-Dateien, die u.a. ermöglicht, einen Haufen von XML-Dateien mit UltraEdit zu öffnen. Dabei soll der Benutzer eine Möglichkeit haben, bestimmte Dateien auszuwählen. Die Dateien sind in mehreren Ordnern abgelegt und durch eindeutige IDs gekennzeichnet. Zur Laufzeit wird also die Anzahl der JPanels automatisch ermittelt aus der Anzahl der zur Verfügung stehenden Orndern mit XML-Dateien. Jede JPanel enthält dann 4 JTextFields, in die man eine ID eingeben kann. Wird der "OK"-Button angeclickt, sollen alle eingegebenen IDs aus allen JTextFields aller JPanels gelesen und zugehörige XML-Dateien in UltraEdit geöffnet werden.
Das Beispiel, welches ich hier verwendet habe, war nur eine "Simplification". In meiner Anwendung benutze ich TableLayout statt FlowLayout (https://tablelayout.dev.java.net).
eugenet ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zugriff auf Konfiguration im verschachtelten Array Ben PHP-Programmierung 5 02.02.2007 12:47
Zugriff auf Dateien in Jar Binary Allgemeine Java-Programmierung 2 14.03.2006 13:52
dynamischer Zugriff auf statische Eigenschaft einer Klasse Ben PHP-Programmierung 10 15.11.2005 15:53
Zugriff auf Graphics Objekte eines Applets lokl Desktop-Applikationen und Grafik 0 11.08.2005 10:28
Zugriff auf Dateien Im Netz CyberHoney Desktop-Applikationen und Grafik 7 22.09.2004 16:42


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:11 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45