JTabbedPane

Status
Nicht offen für weitere Antworten.

Spin

Top Contributor
Java:
 /*JTabbedPane initialisieren*/
        tp = new JTabbedPane();
        weiter = new JButton("Weiter");
        beenden = new JButton("Beenden");

        /* Erster Tab, bzw. erstes JPanel*/
        p1 = new JPanel();
        p1.setLayout(null); // Layout auf null setzen
        weiter.setBounds(270,380,100,40);
        p1.add(weiter);
        beenden.setBounds(380,380,100,40);
        p1.add(beenden);
        tp.addTab("Warenkorb", p1);

        /*Zweiter Tab, bzw. zweites JPanel*/
        p2 = new JPanel();
        p2.setLayout(null); // Layout auf null setzen
        weiter.setBounds(270,380,100,40);
        p2.add(weiter);
        beenden.setBounds(380,380,100,40);
        p2.add(beenden);
        tp.addTab("Anschrift", p2);


Hey Leute , kann mir jemand sagen , warum er mir meinen Buttons nicht auch in Warenkorb anzeigt!

Hab da ne idee , dass mal zu ändern, versuche es auch gleich ^^..

Aber noch ne frage: Habe noch 2 weitere, also 4 Panels.
Habe es erst mit einer forschleife gemacht , aber dann gemerkt , dass ich es dann nicht hinbekomme, jedes Tab unterschiedlich zu benennen und jedes Panel mit anderen Komponenten zu beschmücken.

Muss wohl alles einzelnd dann passieren :/

danke




Java:
/*Komponenten die auf allen Panels zu sehen sein sollen*/
    JButton weiter_1;
    JButton beenden_1;
    JButton weiter_2;
    JButton beenden_2;
    JButton weiter_3;
    JButton beenden_3;
    JButton weiter_4;
    JButton beenden_4;


Habe das jetzt so gemacht und baue mir jetzt einen interne classe extands actionlistener ......aber ich dachte es würde auch nur mit einem button gehen , der auf allen panels geadded wird und jeweils das gleiche macht , nähmlich weiter und beenden :/
 
Zuletzt bearbeitet:

André Uhres

Top Contributor
Weil jedes Swingkind nur einen Papa haben kann, müssen wir für p2 neue Buttons erzeugen. Die GUI Erzeugung in einer Schleife müsste prinzipiell funktionieren. Kannst du das Problem häher beschreiben?
 

Spin

Top Contributor
Hallo :)

Ich denke es macht mehr Sinn , wenn ich dir etwas zum kompilieren hier lasse :)


Java:
 public Bestellformular() {
        /* Fenstertitel bestimmen*/
        super("Bestellformular");
        /* Fenster-schließen-Listener*/
        addWindowListener(new WindowClosingAdapter(true));

        /*JTabbedPane initialisieren*/
        tp = new JTabbedPane();
        weiter_1 = new JButton("Weiter");
        beenden_1 = new JButton("Beenden");
        weiter_2 = new JButton("Weiter");
        beenden_2 = new JButton("Beenden");
        weiter_3 = new JButton("Weiter");
        beenden_3 = new JButton("Beenden");
        weiter_4 = new JButton("Weiter");
        beenden_4 = new JButton("Beenden");

        /* Erster Tab, bzw. erstes JPanel*/
        p1 = new JPanel();
        p1.setLayout(null); // Layout auf null setzen
        weiter_1.setBounds(270, 380, 100, 40);
        weiter_1.addActionListener(new NextTab());
        p1.add(weiter_1);
        beenden_1.setBounds(380, 380, 100, 40);
        p1.add(beenden_1);
        tp.addTab("Warenkorb", p1);

        /*Zweiter Tab, bzw. zweites JPanel*/
        p2 = new JPanel();
        p2.setLayout(null); // Layout auf null setzen
        weiter_2.setBounds(270, 380, 100, 40);
        p2.add(weiter_2);
        beenden_2.setBounds(380, 380, 100, 40);
        p2.add(beenden_2);
        tp.addTab("Anschrift", p2);

        /*Dritter Tab, bzw. drittes JPanel*/
        p3 = new JPanel();
        p3.setLayout(null); // Layout auf null setzen
        weiter_3.setBounds(270, 380, 100, 40);
        p3.add(weiter_3);
        beenden_3.setBounds(380, 380, 100, 40);
        p3.add(beenden_3);
        tp.addTab("Zahlungsmethode", p3);

        /*Vierter Tab, bzw. viertes JPanel*/
        p4 = new JPanel();
        p4.setLayout(null); // Layout auf null setzen
        beenden_4.setBounds(380, 380, 100, 40);
        p4.add(beenden_4);
        tp.addTab("Bestätigung", p4);




        getContentPane().add(tp, BorderLayout.CENTER);
    }






    /*Hauptmethoden*/
    public static void main(String[] args) {

        Bestellformular b = new Bestellformular();
        b.setLocation(100, 100);
        b.setSize(500, 500);
        b.setVisible(true);

    }

  /* Innere Klasse für die Ereignissbehandlung der Buttons :)*/
    class NextTab implements ActionListener {

    public void actionPerformed(ActionEvent e) {
        int tab = tp.getSelectedIndex(); // ermitteln des Tab Indexes
       /* TabCount = Antahl der Registerkarten*/
        tab = (tab >= tp.getTabCount()- 1 ? 0 : tab+1);
        tp.setSelectedIndex(tab);
        ((JPanel)tp.getSelectedComponent()).requestFocus();
    }

    }


}




So das ist meine Java Klasse :) Es funktioniert alles einwandfrei. Doch ist der Code jetzt schon elendig lang . Vorallem wenn ich jetzt anfange auf jeden TAB noch Komponenten hinzuzufügen , für die Methoden zu erschaffen usw.

Ich finde for schleifen toll, da sie aus vielen zweilen code , wenige machen.

Bsp.: ich habe :
Java:
for ( int i =0; i<4; ++i)  7
JPanel a = new JPanel();
tp.addTab("" + i;a) }

Damit erstell ich meine Panel und adde sie ! Aber ich wwiss nun nicht wie ich da meine einzelnden TABS anders bennen kann. Vorallem wie ich nun zwischen den panels unterscheide.

a.add( Komponnente)

Dann würde ja jedes Panel diese bekommen, obwohl ich es ja nur bei Tab1 implementieren möchte.

Das ist mein Problem ^^.

Also eher ein Problem der Performance :)

grüße
 

André Uhres

Top Contributor
Versuch's mal so:
Java:
String[] tabNames = new String[]{"Warenkorb", "Anschrift", "Zahlungsmethode", "Bestätigung"};
for (int i = 0; i < tabNames.length; i++) {
    String name = tabNames[i];
    weiter_1 = new JButton("Weiter");
    beenden_1 = new JButton("Beenden");
    p1 = new JPanel();
    p1.setLayout(null); // Layout auf null setzen
    weiter_1.setBounds(270, 380, 100, 40);
    weiter_1.addActionListener(new NextTab());
    p1.add(weiter_1);
    beenden_1.setBounds(380, 380, 100, 40);
    p1.add(beenden_1);
    tp.addTab(name, p1);
}
 

Spin

Top Contributor
Danke , ich habe nun ein anderes Problem :

Und zwar:
Java:
list1 = new JList(INHALT);
        list1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        list1.setBounds(20, 60, 150, 200);
        p1.add(list1);
        tp.addTab("Warenkorb", p1);

Ich möchte gerne , der liste eine scrollleiste hinzufügen.

mhh, wie mach ich dass ?

p1.add( new JScrollPane(list));
Will nicht funktionieren.

Liegt es daran dass ich setBounds verwende, also das null Layout?


Ich komme nämlich mit den Layouts nicht richtig klar. Ich weiß wie ich sie alle implementiere , aber die ausrichtung , boah ey.

GridLayout wäre eine alternative, aber dann müsste ich mein ganzes progg , wieder umbauen . Kann mir vielleicht jemand helfen , danke
 

André Uhres

Top Contributor
Java:
JScrollPane scrollingList = new JScrollPane(list1);
scrollingList.setBounds(20, 60, 150, 200);
p1.add(scrollingList);
 

Spin

Top Contributor
Vielen Dank.

Java:
  public void actionPerformed(ActionEvent e) {

    int index = list1.getSelectedIndex();
    String action = e.getActionCommand();
            if( action.equals("hinzu"))
            {  for (int i =0;i<INHALT.length;i++)
               {
                   
               }
                listModel2.addElement(index);


            }
    }

Nun möchte ich gerne aus der einen Liste etwas holen und der anderen übergeben.
Ich habe ein schönes Objekt(String) array und der liste hinzugefügt.

Ich muss irgendwie den String , der hinter dem Index steht holen. Ich hatte das mal , mit get irgendwie, kann mir da kurz einer auf die sprünge helfen?

Ich will nicht die ganze list ausgegeben bekommen , sonder nur ein element , welches dann in die andere liste kommt.

<---grml :autsch:

danke
 

André Uhres

Top Contributor
Java:
ListModel model = list1.getModel();
String element = model.getElementAt(11).toString();
 

Spin

Top Contributor
Vielen Dank Andre, habe es noch ein wenig umgebaut , aber es klappt perfekt.

Nun habe ich folgendes Problem, bin schon viel weiter, möchte aber jetzt die Vererbung ein bischen mehr reinbringen.

Mein Problem ist nun , wie ich Den Konstruktor ohne Stackoverflow der anderen Klasse aufrufen kann.

Folgendes Szenario.: Mein Bestellformular enthält nun Tab1 und Tab 2 fertig programmiert, von 4.

Tab3 wollte ich nun außerhalb der klasse programmieren ind der Klasse : Tab3_Zahlungsmethode.




Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Tab3_Zahlungsmethode extends Bestellformular {


    /*******************************************/
            /****TAB 3****/
    JLabel blz;
    JLabel kontonummer;

    JTextField tf_blz;
    JTextField tf_kontonummer;
    JCheckBox cb_nachname;
    JCheckBox cb_ueberweisung;
    JCheckBox cb_Lastschrift;



    public Tab3_Zahlungsmethode()
    {
        blz = new JLabel("BLZ");
        kontonummer = new JLabel("Kontonummer");

        cb_nachname = new JCheckBox("Nachname");
        cb_nachname.setBounds(10, 20, 100, 30);
        p3.add(cb_nachname);
        cb_ueberweisung = new JCheckBox("Überweisung");
        cb_ueberweisung.setBounds(10, 60, 100, 30);
        p3.add(cb_ueberweisung);
        cb_Lastschrift = new JCheckBox("Lastschrift");
        cb_Lastschrift.setBounds(10, 100, 100, 30);
        p3.add(cb_Lastschrift);
    }

Soweit so gut.

Nun möchte ich diese Klasse gerne in der anderen aufrufen.
Ich dachte mir einfach ;) :
Java:
new Tab3_Zahlungsmethode();


Hier macht aber mein Stack nicht mehr mit, der ja alle Variablen und so bereitstellt, die Instanziiert werden.

Weiß jemand auf anhieb wie ich das ändern kann?

grüße
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fiedelbambu Vererbung JTabbedPane vererben in der MainView Java Basics - Anfänger-Themen 0
R JTabbedPane Java Basics - Anfänger-Themen 9
C Tabs in JTabbedPane wechseln, wenn Tabs in eigenen Klassen sind Java Basics - Anfänger-Themen 2
S Verhalten von JTextField in einem JTabbedPane (Register) Java Basics - Anfänger-Themen 6
T Icon auf einem JTabbedPane? Java Basics - Anfänger-Themen 6
J Erste Schritte JTabbedPane sichtbar und unsichtbar Java Basics - Anfänger-Themen 9
B JTabbedPane größe der Tabs ändern Java Basics - Anfänger-Themen 6
R JTabbedPane - Farbe ändern Java Basics - Anfänger-Themen 4
S JTabbedPane jeder Tab in einer eigenen java Datei? Java Basics - Anfänger-Themen 3
I Netbeans - jTabbedPane Hintergrundfarbe ändern Java Basics - Anfänger-Themen 13
X JTable in JPanel in JTabbedPane mouseevent von jtable kommt nicht durch Java Basics - Anfänger-Themen 3
M JTabbedPane Java Basics - Anfänger-Themen 2
A JTable im JTabbedPane Java Basics - Anfänger-Themen 2
H JTabbedPane: Tab-Wechsel unterbinden ? Java Basics - Anfänger-Themen 6
Developer_X Jtabbedpane showPane(xpane)? Java Basics - Anfänger-Themen 2
F JTabbedPane auf Ereignisse reagieren Java Basics - Anfänger-Themen 6
H JTabbedPane wartet auf Eingabe Java Basics - Anfänger-Themen 3
G LAF JTabbedPane Java Basics - Anfänger-Themen 3
L JTabbedPane, richtige Übergabe von Tabs Java Basics - Anfänger-Themen 18
T Dynamischer JTabbedPane Probleme mit JTextArea Java Basics - Anfänger-Themen 2
C jTabbedPane JScrollPane und jPanel Java Basics - Anfänger-Themen 3
C jTabbedPane selektierten Tab markieren Java Basics - Anfänger-Themen 2
G JTabbedPane Java Basics - Anfänger-Themen 3
S aus Resultset JTabbedPane erzeugen Java Basics - Anfänger-Themen 5
N Event auf JTabbedPane abfragen ? Java Basics - Anfänger-Themen 8
N jtabbedpane Java Basics - Anfänger-Themen 4
M JPanel und JTabbedPane macht probleme Java Basics - Anfänger-Themen 5
T JTabbedPane Java Basics - Anfänger-Themen 2
G JTabbedPane zugriff von anderer Methode Java Basics - Anfänger-Themen 2
G Toolbar bei JTabbedPane Java Basics - Anfänger-Themen 5
J Habe gerade erst mit Java begonnen - Frage zu JTabbedPane Java Basics - Anfänger-Themen 3
O JToolBar wird Tab in JTabbedPane statt Toolbar in JFrame Java Basics - Anfänger-Themen 6
S Grafik verschwindet aus JTabbedPane Java Basics - Anfänger-Themen 4
R JTabbedPane wird nicht angezeigt Java Basics - Anfänger-Themen 5
P Fenster schliessen aus JTabbedPane/JPanel Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben