Ergebnis 1 bis 7 von 7

Thema: GUI Frage

  1. #1
    Trojaner
    Registriert seit
    13.11.2008
    Beiträge
    88

    Standard GUI Frage

    HI an Alle!

    um mein Problem mal zu schildern ich lern gerade Java, und wollte ein Programm mit Gui schreiben.
    Soweit eigentlich noch ok..
    Ich habe mir ein schönes Startfenster mit ein paar Buttons gemacht...
    Jetzt wollte ich,dass wenn man auf einen der Buttons klickt, alle Buttons verschwinden und stattdessen z.B. ein paar Textfelder und andere Buttons auftauchen, praktisch ne neue Oberfläche aber in demselben Fenster. Und da hab ich noch keine Vorstellung wie man so was einfach lösen kann.

    Hoffe auf baldige Antworten!

    Gruß
    TRX
    Wer Rechtschreibfehler findet, darf sie behalten!

    Für alle die einen Überfall planen, hier der passende Spruch:
    Dies ist ein Überfall, geben sie ihre Daten in kleinen unnummerierten IP-Paketen herraus!!

  2. #2
    emo-destroyer.* Avatar von br00_pwn
    Registriert seit
    27.10.2008
    Beiträge
    1.318

    Standard

    also mit java kenne ich mich nicht wirklich aus...z.b in vb kannst du verschiedene elemente mit deinelement = invisible ausblenden.. sobald der befehl deinelement = visible im folgenden code kommt wird es wieder sichtbar..
    ich denke wird in java nicht anders gehen, einfach mal google benutzen..
    Geändert von br00_pwn (24.04.2009 um 20:25 Uhr)

  3. #3
    Trojaner
    Registriert seit
    13.11.2008
    Beiträge
    88

    Standard

    an die möglichkeit habe ich auch schon gedacht ,aber das wäre ziemlich aufwändig ,denn die Startseite wird ca. 20 Buttons bekommen die dann zu einzelnen Oberflächen führen sollten und dass alles jedesmal invisble setzten oder dann wieder visible ist ein ziemlicher Aufwand.

    Ich vermute das man so etwas mit panels machen könnte aber ich wäre für Hilfe dankbar!
    Wer Rechtschreibfehler findet, darf sie behalten!

    Für alle die einen Überfall planen, hier der passende Spruch:
    Dies ist ein Überfall, geben sie ihre Daten in kleinen unnummerierten IP-Paketen herraus!!

  4. #4
    emo-destroyer.* Avatar von br00_pwn
    Registriert seit
    27.10.2008
    Beiträge
    1.318

    Standard

    hm..kannst bestimmt einen bestimmten bereich deffinieren, worin du die element setzt und dann einfach diesen bereich invis setzten ect..

  5. #5
    Trojaner
    Registriert seit
    13.11.2008
    Beiträge
    88

    Standard

    @br00_pwn:
    Ja ,ich glaub des waren diese panels, also wenn da jemand einen beispiel source hat oder mir des kurz erklären würde, wär es gut.

    Gruß
    TRX
    Wer Rechtschreibfehler findet, darf sie behalten!

    Für alle die einen Überfall planen, hier der passende Spruch:
    Dies ist ein Überfall, geben sie ihre Daten in kleinen unnummerierten IP-Paketen herraus!!

  6. #6
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    http://java.sun.com/j2se/1.4.2/docs/...g/JButton.html
    Methods inherited from class javax.swing.JComponent
    http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JComponent.html#setVisible(boolean)

    Speicher deine Buttonhandels doch in einem Array ab.
    Beispielcodes: (ungetestet und teilweise unvollständig)

    Code:
    // Deklaration
    JButton[] MeineTollenButtons = new JButton[100];
    // Mit NULL vorbelegen
    for(int i = 0; i < MeineTollenButtons.length; i++)
    {
        MeineTollenButtons[i] = null;
    }
    // Buttons erstellen
    MeineTollenButtons[0] = new JButton(...);
    MeineTollenButtons[1] = new JButton(...);
    [...]
    MeineTollenButtons[n] = new JButton(...);
    
    // Alle Buttons unsichtbar machen
    for(int i = 0; i < MeineTollenButtons.length; i++)
    {
        if (MeineTollenButtons[i] != null)
        {
            MeineTollenButtons.setVisible(false);
        }
    }

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  7. #7
    Trojaner
    Registriert seit
    13.11.2008
    Beiträge
    88

    Standard

    so würde es wahrscheinlich funktionieren, aber ist es auch mit der contentpane möglich?

    Bsp:
    box1 (enthält die Buttons 1-5)
    contentPane.add(box1);

    box2 (enthält Buttons 6-10)
    Button Abfrage (wenn Button 2 gedrückt
    contentPane.add(box2);

    So versuch ich desnämlich zurzeit..(Klappt aber noch nicht)

    Gruß TRX

    EDIT:

    Habs jetzt doch geschafft!

    Code:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class LAF extends JFrame {
       
       JPanel box1;
       JPanel box2;
       JButton bmotif, bwindows, bmetal, bumschalt;
       JCheckBox chk1, chk2;
       ButtonListener butLis = new ButtonListener();
       Container contentPane = getContentPane();
       
    
       public LAF() {
          super();
    
          // Hauptfenster einrichten
          setTitle("Look and Feel");
          contentPane.setBackground(Color.LIGHT_GRAY);
    
    
          
          //Box 2
          box2 = new JPanel();
          
    
          bmotif = new JButton("Motif");
          bwindows = new JButton("Windows");
          bmetal = new JButton("Metal");
    
          bmotif.addActionListener(butLis);
          bwindows.addActionListener(butLis);
          bmetal.addActionListener(butLis);
    
          
          box2.add(bmotif);
          box2.add(bwindows);
          box2.add(bmetal);
          
    
          // Box 1
          box1 = new JPanel();   
          
          bumschalt = new JButton("Umschalten");
          bumschalt.addActionListener(butLis);
          
          chk1 = new JCheckBox("Unterstrichen");
          chk2 = new JCheckBox("Kursiv");
    
          box1.add(chk1);
          box1.add(chk2);
          box1.add(bumschalt);
          
          contentPane.add(box1);
          
          
          
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       }
    
       // Hier Ereignisbehandlungsmethoden für Komponenten
    
       // Ereignisbehandlung für Schaltflächen zum
       // Umschalten des Look&Feels
       class ButtonListener implements ActionListener {
          public void actionPerformed(ActionEvent e) {
             try {
             if (e.getSource()==bmotif)
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
             if (e.getSource()==bwindows)
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
             if (e.getSource()==bmetal)
                UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
             if (e.getSource()==bumschalt)
                 contentPane.remove(box1);
                 contentPane.add(box2);
             }
             catch(Exception ex) {
             }
             // Das neue Look&Feel allen Komponenten mitteilen
             SwingUtilities.updateComponentTreeUI(contentPane);
    
          }
       }
    
       public static void main(String args[]) {
          // Fenster erzeugen und anzeigen
          LAF hauptfenster = new LAF();
          hauptfenster.setSize(300,200);
          hauptfenster.setLocation(200,300);
          hauptfenster.setVisible(true);
       }
    }
    Ich denk der Code ist selbsterklärend..
    Ist nur teilweise von mir, deshalb auch so zusammen gestückelt. ;-)
    Geändert von TRX (24.04.2009 um 23:53 Uhr) Grund: Problem gelöst
    Wer Rechtschreibfehler findet, darf sie behalten!

    Für alle die einen Überfall planen, hier der passende Spruch:
    Dies ist ein Überfall, geben sie ihre Daten in kleinen unnummerierten IP-Paketen herraus!!

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •