import javax.swing.*;
import java.awt.*;
class FMSJava extends JFrame
{
static JFrame Hauptfenster;
JPanel window; // Das ist der Container, der alles wichtige enthält
JMenuBar Menuzeile; // Wird die Menuzeile, die in window erzeugt wird
JSplitPane Dateifenster; // Ein gesplitteter Container, der Dateien später darstellt
JTextField Commandozeile; // und unten dann die obligatorische Kommandozeile
JScrollPane linkesFenster;
JScrollPane rechtesFenster;
JTable Dateiinforechtesfenster;
JTable Dateiinfolinkesfenster;
FMSEintrag DateiEintrag_links;
FMSEintrag DateiEintrag_rechts;
public void createMenubar()
{
Menuzeile = new JMenuBar();
JMenu leftwindow = new JMenu ("Left");
Menuzeile.add(leftwindow);
window.add(Menuzeile); // und nun das Element dem Container hinzufügen
}
public void createDateifenster()
{
Dateifenster = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
Dateifenster.setPreferredSize(new Dimension(640,460));
DateiEintrag_links = new FMSEintrag(); // FMSEintrag ist eine das Interface TableModel ausfüllende Klasse zur Definition der Tabelleneinträge
DateiEintrag_rechts = new FMSEintrag();
// Das linke Fenster ..
Dateiinfolinkesfenster = new JTable(DateiEintrag_links); // Die Tabelle mit Verzeichnis-infos fürs linke Fenster
Dateiinfolinkesfenster.setGridColor(new Color(0xFFF600));
Dateiinfolinkesfenster.setForeground(new Color(0xFFF600));
Dateiinfolinkesfenster.setBackground(new Color(0x415EA8));
Dateiinfolinkesfenster.setFont(new Font("Arial",Font.PLAIN,14));
Dateiinfolinkesfenster.setShowVerticalLines(true);
Dateiinfolinkesfenster.setShowHorizontalLines(false);
linkesFenster = new JScrollPane(Dateiinfolinkesfenster, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
linkesFenster.setPreferredSize(new Dimension(320,330));
// Das rechte Fenster .. Eine Tabelle enthält Verzeichnisinfos, und falls sie zu groß ist, wird sie in ein Scrollpane gelegt
Dateiinforechtesfenster = new JTable(DateiEintrag_rechts);
rechtesFenster = new JScrollPane(Dateiinforechtesfenster, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
rechtesFenster.setPreferredSize(new Dimension(320,330));
// Das SplitPane konfigurieren ...
Dateifenster.setLeftComponent(linkesFenster); // Die Splitpane hat 2 Teile - links/top die eine Componente, rechts/unten die andere
Dateifenster.setRightComponent(rechtesFenster);
Dateifenster.setDividerLocation(0.5); // Ja, wo ist denn der Divider !
Dateifenster.setResizeWeight(0.5); // Wie wird der Platz verteilt, wenn sich das Fenster vergrößert .. welcher Teil des Splitpane bekommt was ..
Dateifenster.setDividerSize(10); // Größe des Trenners
window.add(Dateifenster);
}
public void createCommando()
{
Commandozeile = new JTextField(1);
window.add(Commandozeile);
}
public FMSJava() // Konstruktor
{
super("Filemanager"); // Hauptfenster-Bezeichnung
window = new JPanel(); // das wird der Hauptcontainer im JFrame
BoxLayout Ausrichtung = new BoxLayout(window,BoxLayout.Y_AXIS); // alle Elemente werden vertikal geordnet
window.setLayout(Ausrichtung); // damit sagen wir es dem Container
createMenubar();
createDateifenster();
createCommando();
this.setContentPane(window); // was wird im JFrame angezeigt -> der window-Container
this.setPreferredSize(new Dimension(640,480));
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // wenn Fenster geschlossen wird - Exit (standardmäßig implementiert)
this.pack();
}
public static void main(String args[])
{
Hauptfenster = new FMSJava(); // so muss ein Swing-App initialisiert werden
}
}