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
	}
}