Erste Schritte Arbeiten mit Klassen

papawt

Mitglied
Hallo
möchte meinen Code in Klassen aufteilen.
Java:
package jtabbedpane;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

public class JTab_Main
{
    public static void main(String[] args)
    {
        JFrame Form = new JFrame();
        Form.setSize(500, 300);
        Form.setLocationRelativeTo(null);
        Form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //
        JPanel panel_01 = new JPanel();
        Form.getContentPane().add(panel_01, BorderLayout.NORTH);
        JLabel lbl_01 = new JLabel("01");
        panel_01.add(lbl_01);
        //
        JPanel panel_02 = new JPanel();
        Form.getContentPane().add(panel_02, BorderLayout.CENTER);
        panel_02.setLayout(new BorderLayout(0, 0));
        JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
        panel_02.add(tabbedPane, BorderLayout.CENTER);
        //
        JPanel tab1 = new JPanel();
        tabbedPane.addTab("tab1", null, tab1, null);
        //
        JPanel tab2 = new JPanel();
        tabbedPane.addTab("tab2", null, tab2, null);
        //
        Form.setVisible(true);
    }
}
Die Suche im Internet war erfolglos,
darum Bitte ich hier um Hilfe.
Möchte gerne panel_01,panel_02,tab1 und tab2
als externe Klassen haben.
LG: Willi
 

Robat

Top Contributor
Die Suche im Internet war erfolglos,
darum Bitte ich hier um Hilfe.
Nach was googelt man denn wenn man dazu nichts findet ;)

Was genau ist denn deine Frage bzw was hast du bereits versucht?

Wenn du das ganze in Klassen aufteilen willst musst du dir neue Klassen anlegen die jeweils von JPanel erben.
In deiner JTab-Main Klasse erstellst du dann jeweils eine neue Instanz deiner Panels und fügst sie mittels add() hinzu.

Gruß Robert
 

papawt

Mitglied
hallo Robert
Das ist ja dass was ich nicht kann.
Was genau schreib ich in die neu angelegte Klasse
zum Beispiel für panel_01,und wie erstelle ich die Instanz
und füge sie mittels add() hinzu.

LG: Willi
 

Robat

Top Contributor
Da solltest du dir vielleicht doch noch mal ein Grundlagenbuch zur Hand nehmen. Das ist in Prinzip ganz einfaches Java.

Um eine Klasse zu einem JPanel zu machen musst du davon erben - das geht mit extends.
Dort kannst du dann bspw. im Konstruktor wie gehabt Methoden wie setBackground(), setSize(), ... aufrufen und auch wieder Komponenten hinzufügen

Java:
public class MyPanel extends JPanel
{
    public MyPanel()
    {
         setBackground(Color.RED);
         setLayout(new FlowLayout());
         ...
    }
}

Eine Instanz dieser klasse erstellst du mit dem new Operator.

Java:
MyPanel myPanel =new MyPanel();

Und hinzufügen tust du es ganz normal mit der add(myPanel); Methode.

Gruß Robert
 

papawt

Mitglied
Hallo
hab es so verstanden.
Klasse test_main
Java:
package test_01;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class test_main
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500, 500);
        JPanel test_panel = new JPanel();
        frame.getContentPane().add(test_panel, BorderLayout.NORTH);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

Klasse test_panel
Java:
package test_01;

import java.awt.Color;
import java.awt.FlowLayout;

import javax.swing.JPanel;

public class test_panel extends JPanel
{
    public test_panel()
    {
        setBackground(Color.RED);
        setLayout(new FlowLayout());
    }
}

sollte jetzt ein roter Hintergrund sein ?
Wenn ja, da tut sich nichts.
LG: Willi
 

papawt

Mitglied
hallo
hab ich geendert und es funktioniert.
werde jetzt erstmal versuchen den Rest
zu lösen.
Danke für deine Geduld.
LG: Willi
 

papawt

Mitglied
Hallo
hier der überarbeitete Code.

Java:
package test_01;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Main_Klasse
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500, 500);
        //
        JPanel test_panel = new Label();
        frame.getContentPane().add(test_panel, BorderLayout.NORTH);
        JPanel tabbed = new Tabbed_Pane();
        frame.getContentPane().add(tabbed, BorderLayout.CENTER);
        //
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

Java:
package test_01;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

public class Label extends JPanel
{
    public Label()
    {
        setLayout(new BorderLayout());
        JLabel lbl_01 = new JLabel("titel");
        lbl_01.setFont(
                lbl_01.getFont().deriveFont(Font.BOLD + Font.ITALIC, 30));
        lbl_01.setBackground(Color.BLACK);
        lbl_01.setOpaque(true);
        lbl_01.setForeground(Color.WHITE);
        lbl_01.setHorizontalAlignment(SwingConstants.CENTER);
        add(lbl_01, BorderLayout.NORTH);
    }
}

Java:
package test_01;

import java.awt.BorderLayout;

import javax.swing.JPanel;
import javax.swing.JTabbedPane;

public class Tabbed_Pane extends JPanel
{
    public Tabbed_Pane()
    {
        setLayout(new BorderLayout(0, 0));
        JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
        add(tabbedPane, BorderLayout.CENTER);
        JPanel tab_01 = new Tab_01();
        tabbedPane.addTab("tab 02", null, tab_01, null);
        JPanel tab_02 = new Tab_02();
        tabbedPane.addTab("tab 02", null, tab_02, null);
    }
}

Java:
package test_01;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JPanel;

public class Tab_01 extends JPanel
{
    public Tab_01()
    {
        setLayout(new BorderLayout(0, 0));
        JPanel tab_01 = new JPanel();
        add(tab_01, BorderLayout.CENTER);
        tab_01.setLayout(new BorderLayout(0, 0));
        JButton btnNewButton = new JButton("New button");
        tab_01.add(btnNewButton);
    }
}

Java:
package test_01;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JPanel;

public class Tab_02 extends JPanel
{
    public Tab_02()
    {
        setLayout(new BorderLayout(0, 0));
        JPanel tab_02 = new JPanel();
        add(tab_02, BorderLayout.CENTER);
        JButton btnNewButton = new JButton("New button");
        tab_02.add(btnNewButton);
    }
}

LG: Willi
 

Harry Kane

Top Contributor
Die Erstellung eine komplexen Layouts würde ich nie über neue Klassen lösen, sondern über einen geeigneten LayoutManager und Factorymethoden in der Hauptklasse. Diese Factorymethoden könnten z. B. JPanels mit einem gewünschten Layout zurückgeben.
Deine neue Klassemn erweitern die Funktionalität von JPanel nicht, sondern rufen lediglich Methoden davon auf. So sollte Vererbung nicht sein.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Mit der gleichen BlockingQueue in zwei Klassen arbeiten Java Basics - Anfänger-Themen 12
R mit klassen-instanzen arbeiten in packages Java Basics - Anfänger-Themen 10
A Arbeiten mit mehreren Klassen Java Basics - Anfänger-Themen 4
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
monsterherz Arbeiten mit Random Java Basics - Anfänger-Themen 12
T Mit jedem Wert in der for-Schleife weiter arbeiten Java Basics - Anfänger-Themen 3
Alen123 Erstes Arbeiten mit Methoden. Java Basics - Anfänger-Themen 5
B Zeitgleiches Arbeiten am Code mit mehreren Personen? Java Basics - Anfänger-Themen 7
D Erste Schritte Sinvolle Architektur und paketübergreifendes Arbeiten Java Basics - Anfänger-Themen 2
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
F Arbeiten mit Arrays Java Basics - Anfänger-Themen 2
B Kann man eine Tabelle in Eclipse erzeugen und damit arbeiten? Java Basics - Anfänger-Themen 8
K Interface: wie damit arbeiten Java Basics - Anfänger-Themen 4
G Graphische Darstellung (Arbeiten mit einem Window) Java Basics - Anfänger-Themen 1
M Neuen Ordner im Überverzeichnis erstellen, und dadrin arbeiten Java Basics - Anfänger-Themen 4
M Input/Output Arbeiten mit extrem vielen Dateien Java Basics - Anfänger-Themen 8
A Mit Enums in Methoden arbeiten Java Basics - Anfänger-Themen 8
D Wie mit Bibliotheken ohne API arbeiten? Java Basics - Anfänger-Themen 16
S Arbeiten mit einer CSV Datei und Überprüfen von einem Datum in einem Textfeldern Java Basics - Anfänger-Themen 4
M Erste Schritte Arbeiten mit SuM (Stifte und Mäuse) Java Basics - Anfänger-Themen 20
S Arbeiten mit arrays Java Basics - Anfänger-Themen 4
D Arbeiten mit Twitter4J Java Basics - Anfänger-Themen 2
H Arbeiten mit Properties Java Basics - Anfänger-Themen 8
hdi Worst-Performance-Award für Arbeiten mit ListModel Java Basics - Anfänger-Themen 7
G Mit Javadoc arbeiten Java Basics - Anfänger-Themen 13
L Arbeiten mit Vectoren in einer Hashtable Java Basics - Anfänger-Themen 2
Y Mit Interface arbeiten Java Basics - Anfänger-Themen 9
G mit Threads arbeiten Java Basics - Anfänger-Themen 2
N Herangehensweise - mit vielen Variablen arbeiten Java Basics - Anfänger-Themen 6
M Arbeiten mit ArrayList Java Basics - Anfänger-Themen 9
G mit Strings arbeiten Java Basics - Anfänger-Themen 7
G in Java mit Schnittstellen arbeiten Java Basics - Anfänger-Themen 5
G Arbeiten mit einem Fenster Java Basics - Anfänger-Themen 11
G erstes Arbeiten mit Collections Java Basics - Anfänger-Themen 17
G erstes Arbeiten mit Packages Java Basics - Anfänger-Themen 2
C Arbeiten mit MDI Java Basics - Anfänger-Themen 2
J Arbeiten mit Strings Java Basics - Anfänger-Themen 5
E Aus Datei einlesen und weiter mit arbeiten! Java Basics - Anfänger-Themen 15
Z In Bild-dateien(jpg) zeichnen und arbeiten. Java Basics - Anfänger-Themen 4
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
C Array von Klassen Java Basics - Anfänger-Themen 2
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
D Klassen Klassen Kommunikation Java Basics - Anfänger-Themen 12
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
Speedrunner klassen aufrufen Java Basics - Anfänger-Themen 41
M Log4J (v2) nachträglich in allen Klassen hinzufügen Java Basics - Anfänger-Themen 9
D importieren eigener Klassen Java Basics - Anfänger-Themen 12
W Wo ist der Wurm in meinem Grundverständnis von Klassen? Java Basics - Anfänger-Themen 22
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
B Inventar als einzelne Klassen anlegen? Java Basics - Anfänger-Themen 12
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
Y Klassen Klassen und Objekte Java Basics - Anfänger-Themen 3
Y Klassen Klassen und Objekte mit set und get Java Basics - Anfänger-Themen 0
A Generischen Klassen Java Basics - Anfänger-Themen 8
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
J 2 klassen benutzen Java Basics - Anfänger-Themen 5
A Klassen und methoden Java Basics - Anfänger-Themen 15
A Bankweverwaltung mit Klassen und Methoden Java Basics - Anfänger-Themen 14
J Klassen Problem Java Basics - Anfänger-Themen 8
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben