JTabbedPane, richtige Übergabe von Tabs

Status
Nicht offen für weitere Antworten.

licht400

Bekanntes Mitglied
Hallo,
habe eine Main mit einem JTabbedPane (TPane).

TPane soll folgendermaßen aussehen. |Main||Design1||Design2|

In der Main steht drin.

Code:
TPane.addTab ("Main", makePanel);

das klappt auch. jetz soll noch design1 und design 2 hinzugefügt werden.

Code:
TPane.addTab ("Design1", design1 = new Design1());
TPane.addTab ("Design2", design2 = new Design2());

Problem ist hier, das ein fehler kommt "adding a window to a container".

also habe ich das geändert.

Code:
TPane.addTab ("Design1", null);
TPane.addTab ("Design2", null);

und dazu ein

Code:
public void stateChanged (ChangeEvent evt){
        JTabbedPane tab = (JTabbedPane)evt.getSource();
         int index = tab.getSelectedIndex();
       
         if (index ==1){
            design1 =new Design()1;
         }
       
         if (index ==2){
            design2 ) new Design2();
           
         }
        System.out.println("Der " + (tab.getSelectedIndex()+1) + ". Tab wurde gewählt");
        //System.out.println("name: "+pane.getName().toString());
    }


Problem: Bei Design1 und Design2, wenn ich auf deren Reiter klicke, öffnen sie sich in einem seperaten fenster und nicht im Reiter darunter Sad.
Wie bekomme ich das Fenster (design1 und design2) mit zur TPane?

Ich stehe auf dem Schlauch ...!
 
S

SlaterB

Gast
wie kannst du glauben, dass du einfach
TPane.addTab ("Design1", null);
schreiben kannst, was schon sehr merkwürdig ist,
und dann in stateChanged() die kaputte Einfügung wieder reparieren kannst?

das wird doch alles nur schlimmer und kaputter,

offensichtlich ist Design1 keine JComponent und öffnet ein separates Fenster, sobald es erzeugt wird,
mit diesen Eigenschaften ist es meilenweit von JTabbedPane entfernt,

du kannst doch auch kein Auto im Garten pflanzen
 

licht400

Bekanntes Mitglied
Mhh ok, da gebe ich dir recht. Ich dachte, da es eh in einem Fenster ausgegeben wird Design, sollte
es doch gelingen, auch ein ein JTabbedPane hinzuzufügen oder nicht?
Was müsste man den in Design vll ändern..? Design ist abgeleitet von JDialog. Irgendwie muss doch es doch möglich sein, die seite nicht extra zu öffnen..oder?

Gibt es den eine Möglichkeit, das ganze rein zubasteln?
 
S

SlaterB

Gast
kommt drauf an, was du überhaupt haben willst,
soll der Inhalt des JDialogs wie ein normales Tab angezeigt werden
oder beim Anklicken des Tabs ein Fenster geöffnet werden, wie es nun halb klingt,

bei ersterem musst du sinnvoll getrennten Code programmieren:
alles was im JDialog oder sonst einem Fenster zu sehen ist, von Menüs oder so abgesehen,
gehört in ein JPanel,
dieses JPanel kannst du nun entweder in dad JTabbedPane einfügen oder den JDialog
 

licht400

Bekanntes Mitglied
Die Klasse Design ist fertig.
Die läuft auch wunderbar alleine, im JDialog.

So, da ich mehrer Design Klassen habe, wollte ich einfach nur einen Reiter nutzen.
Den füge ich in Main ein. Aber wie füge ich dann am dümmsten die Tabs hinzu?

Es will einfach nicht so wie oben beschrieben und anders seh ich es grad nicht, auch nach deiner erläuterung.
 
S

SlaterB

Gast
du kannst nur ein JPanel einfügen, keinen JDialog,

du musst deinen JDialog so umbauen, dass du ein JPanel mit dem Inhalt extrahieren kannst,
ansonsten gehts nicht

da deine Fragen vermuten lassen, dass du kaum den Aufbau von graphischen Oberflächen verstehst, sehe ich etwas schwarz
 

licht400

Bekanntes Mitglied
Ok, nein umbasteln sollte nicht das Problem sein.
Wenn ich statt JDialog JPanel habe, wie füge ich in der Main,wo JTabbePane ist, das Design ein?
 
S

SlaterB

Gast
ich denke es geht hier um das JTabbedPane?
und da hast du doch anscheinend schon ein laufendes Beispiel:
> TPane.addTab ("Main", makePanel);
 

licht400

Bekanntes Mitglied
jaja..aber kann ich , wenn dann Design abgeleitet ist von JPanel

einfach sagen..

TPane.addTab("Design", design = new Design);

geht das dann..:?
 

licht400

Bekanntes Mitglied
Ok. es funktioniert fast.
Problem noch..bei JDialog musste man sagen...
this.getContentPane.add(irgendeinPanel);

das ist bei JPanel ja nicht so. wie geb ich dem da des irgendeinePanel mit??
 
S

SlaterB

Gast
> das ist bei JPanel ja nicht so. wie geb ich dem da des irgendeinePanel mit??

verstehe ich nicht,
du willst in ein JPanel x ein anderes JPanel irgendeinePanel einfügen?
aus welchem Grund geht das nicht und was hat das mit dem aktuellen Thema zu tun?
 

licht400

Bekanntes Mitglied
Also, wenn ich eine klasse nach JDialog ableite, muss ich um später etwas drauf zu bekommen (ein button, ein label, etc) dem sagen, wo drauf. Also bei JDialog macht man das mit this.ContentPane.add(irgendwas);

Aber wenn ich von JPanel ableite, muss ich doch auch den Komponenten sagen, hier du musst dort drauf...wie contentPane.add..aber das gibts ja nicht..da gibts dann nur this.add(komponente), da zeigts mir aber nix an. bei contentPane, wenn ich nach JDialog ableite schon.

Verstehste :D?
 
S

SlaterB

Gast
auf Deutsch:
du hast nun also irgendwo in deinem Programm ein JPanel, in welches du etwas einfügst,
was aber am Ende nicht zu sehen ist,

na das ist doch ne Aussage, kann aber tausend Gründe haben,
Layout, setPreferredSize, das JPanel gar nicht in die GUI eingefügt oder oder oder,

langsam hilft wieder nur das Allheil-Mittel: poste ein möglichst kurzes vollständiges Programm,
es reicht übrigens, wenn nur ein Button nicht zu sehen ist,
müsse nicht alle 20 Stück sein, die normalerweise in deinem Programm drin sind, also kürzen kürzen kürzen ;)
 

licht400

Bekanntes Mitglied
okey..also..es klappt, nur zeigt es nix an ^^

In der Main steht...

Code:
public class Main extends JDialog{
  private JTabbedPane tabPanel;

   public static void main(String[] args)
     JDialog start = new Main();
     start.setAlwaysOnTop(true);
     start.setVisible(true);
     start.setLocation(100,100);
   //....
   }
   public Main(){
   tabPanel = new JTabbedPane();
   this.getContentPane().setLayout(null);
   this.getContentPane().add(tabPanel);
   Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
	screensize.height=768;
	screensize.width=1024;
        
        tabPanel.setSize(screensize.width,screensize.height);
	tabPanel.setLocation(0,0);

        tabPanel.addTab("Main: ",makePanel());
        tabPanel.addTab("Design",Design design = new Design);
        tabPanel.addTab("Design2",Design design2 = new Design2());
        tabPanel.addChangeListener(this);
        this.getContentPane().add(tabPanel);

}
}

jetzt was in design steht...

Code:
public class Design extends JPanel {
private JPanel designPanel ;

 public Design(){
  designPanel = new JPanel();
  designPanel.setSize(1024,768);
  designPanel.setVisible(true);
  makeBereiche();
}
 //Deutsch-Englisch MIX :))
 public void makeBereiche(){
   
    BackGroundPane mainPanel = new BackGroundPane(designPath);
        mainPanel.setLayout(null);
        //mainPanel.setPreferredSize(new Dimension(1024,668));
        mainPanel.setSize(1024,668);
        mainPanel.setLocation(0,100);
       // mainPanel.setOpaque(false);
        designPanel.add(mainPanel);
}

//Klasse zum Laden des Designbild ..das bild reinladen ging, bevor ich das Design extends JPanel gemacht habe !
    class BackGroundPane extends JPanel {
		Image img = null;
		BackGroundPane(String imagefile) {
			if (imagefile != null) {
				MediaTracker mt = new MediaTracker(this);
				img = Toolkit.getDefaultToolkit().getImage(imagefile);
				mt.addImage(img, 0);
				try {
					mt.waitForAll();
				} catch (InterruptedException e) {
                                    PropertyConfigurator.configureAndWatch( "log4j.properties" );
                                    logger.info("Designbild nicht geladen");
                                    e.printStackTrace();
				}
			}
		}

            /**Background draw*/
		protected void paintComponent(Graphics g) {
			super.paintComponent(g);
			g.drawImage(img,0,0,this.getWidth(),this.getHeight(),this);
		}
	}

}
 

licht400

Bekanntes Mitglied
so. jetz zeichnet es.
hab das null layout rausgenommen.

Problem: Jetz wird das bild nicht mehr ordentlich gezeichnet. nur die hälfte.^^ also es ist nach links verschoben, so das die rechte hälfte leer ist. ^^
und die Buttons die drauf sind, liegen auch nicht da, wo sie seien sollten. Irgendwie benötige ich das null layout ^^

Wie bekomme ich es hin, das es noch ordentlich zu sehen ist?


Edit: statt setSize setPreferredSize(new Dimension(1024,668)) ,aber das ergibt immer noch keine 1024 mal 668..es wird ein stück größer..^^ versteh ich nicht.
 
S

SlaterB

Gast
von den Buttons ist im Code nix zu sehen, poste mehr,

wenn du null-Layout verwendest, dann musst du doch auch setBounds angeben?
oder reicht für andere Komponenten setLocation + setSize?

-------

zweimal this.getContentPane().add(tabPanel); (Zeile 14 und 26) klingt nicht so gut
 

licht400

Bekanntes Mitglied
na setbounds ist doch setLocation + setSize ???
jetz ist ja alles zu sehen, nur nicht da wo es sein soll ^^.

wo design noch abgeleitet war von JDialog, passte alles.
Jetz mit JPanel liegt alles sehr komisch^^!

edit: 1mal getcontentpane rausgenommen ^^. trotzdem hauts mir alles durcheinander :(
 
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
Spin JTabbedPane Java Basics - Anfänger-Themen 10
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
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
krgewb Keine richtige Doku Java Basics - Anfänger-Themen 5
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
J Layout Manager, welcher ist der Richtige für mein Program? Java Basics - Anfänger-Themen 1
M Kennt jemand die richtige Lösung? Java Basics - Anfänger-Themen 7
R Ist Java das Richtige für mich? Java Basics - Anfänger-Themen 4
A Java die richtige Programmiersprache für mein Projekt? Java Basics - Anfänger-Themen 1
C Lotto 3, 4, 5, 6 Richtige nach x Ziehungen ermittelt.. Java Basics - Anfänger-Themen 7
D Richtige Kommentierung Klassenvariablen Java Basics - Anfänger-Themen 19
G Die richtige Methode aus einer DTO auszurufen Java Basics - Anfänger-Themen 27
E Die richtige Suche in der API Java Basics - Anfänger-Themen 1
L Richtige Reihenfolge der Dateien Java Basics - Anfänger-Themen 5
L Collections Ist eine Arraylist hier das richtige? Java Basics - Anfänger-Themen 12
E Mastermind programmieren, wie den falschen Platz aber richtige Farbe schecken? Java Basics - Anfänger-Themen 23
A OOP Richtige Verwendung von ArrayList und equals Java Basics - Anfänger-Themen 24
I Richtige Java-Version finden? Java Basics - Anfänger-Themen 17
Meeresgott Richtige Dokumentation Java Basics - Anfänger-Themen 1
Meeresgott Richtige Dokumentation Java Basics - Anfänger-Themen 22
P Klassen Richtige Anwendung einer Enum-Klasse Java Basics - Anfänger-Themen 11
H Ist Java überhaupt die richtige Sprache für das Projekt? Java Basics - Anfänger-Themen 8
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
A richtige Kombination aus Werte- und Referenztypen Java Basics - Anfänger-Themen 63
J Erste Schritte Verständnisfrage im Bezug auf das (richtige) Programmieren Java Basics - Anfänger-Themen 5
E Richtige Ausgabe nur mit toString() - Warum? Java Basics - Anfänger-Themen 4
S Das richtige Format für den SOAP Zugriff Java Basics - Anfänger-Themen 0
K Welche Java Version ist die richtige Java Basics - Anfänger-Themen 3
X Methoden Wort aus String löschen und richtige Verschachtelung Java Basics - Anfänger-Themen 17
X Ist Java für mich das richtige? Java Basics - Anfänger-Themen 10
D Simulation von Geburt/Tod und "richtige" Erkennung eines Hindernisses Java Basics - Anfänger-Themen 7
F In ArrayList wird nicht der richtige Wert gespeichert Java Basics - Anfänger-Themen 6
S Richtige String-Variable finden Java Basics - Anfänger-Themen 3
K Richtige Pfadangabe einer Textdatei Java Basics - Anfänger-Themen 7
P Ist Java die richtige Programmiersprache dafür? Java Basics - Anfänger-Themen 29
Dit_ invokeLater | richtige Anwendung Java Basics - Anfänger-Themen 2
L eine richtige anfänger-frage Java Basics - Anfänger-Themen 3
J FileOutputStream richtige Pfadangabe? Java Basics - Anfänger-Themen 8
D Der richtige Layout Manager Java Basics - Anfänger-Themen 8
P Keine richtige Codeabarbeitung?! Java Basics - Anfänger-Themen 9
U Richtige Benutzung der API-Doku Java Basics - Anfänger-Themen 8
G Richtige Syntax für Bruch Java Basics - Anfänger-Themen 12
N Anfängerfrage richtige Syntax und Frage zu Vector Java Basics - Anfänger-Themen 7
G Polymorphismus und die richtige Anwendung Java Basics - Anfänger-Themen 6
B Ist Java das richtige für mich? Java Basics - Anfänger-Themen 12
W Java das richtige? Java Basics - Anfänger-Themen 9
M Welche Javaversion ist die Richtige? Java Basics - Anfänger-Themen 14
S Java Games Programieren. Der richtige Weg dorthin. Java Basics - Anfänger-Themen 4
M Java die richtige Sprache? Java Basics - Anfänger-Themen 4
S Web Mining - XML Filter der richtige Anstatz? Java Basics - Anfänger-Themen 2
W Java Web Start das richtige? Java Basics - Anfänger-Themen 11
J Richtige Auagabe in einer *.txt Java Basics - Anfänger-Themen 2
B Ist Java das richtige für folgendes Programm! Java Basics - Anfänger-Themen 2
T Bild drehen + richtige größe berechnen Java Basics - Anfänger-Themen 4
M Richtige Paarungen aus Array ausgeben Java Basics - Anfänger-Themen 2
S richtige antworten [%] ausgabe Java Basics - Anfänger-Themen 7
bernd Richtige Pfadangabe für das Kopieren von Dateien Java Basics - Anfänger-Themen 10
A Java wirklich das richtige? Java Basics - Anfänger-Themen 20
B Paar richtige Anfängerfragen Java Basics - Anfänger-Themen 7
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
S Übergabe von Arrays an Methoden Java Basics - Anfänger-Themen 20
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
D Methode mit Übergabe double und Rückgabe String Java Basics - Anfänger-Themen 2
L Methoden Übergabe von Parameter Java Basics - Anfänger-Themen 3
K Java Problem mit Übergabe von argumenten Java Basics - Anfänger-Themen 3
J Übergabe von Parametern an andere Methoden Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben