Hallo Zusammen,
ich über gerade mal wieder und erstelle gerade eine kleine GUI. Damit die Klasse MainFrame nicht zu voll und unübersichtlich wird, möchte ich die einzelnen Panel's in andere Klassen auslagern. Wie aus dem Beispiel zu entnehmen ist, habe ich die mainPanel in leftPanel und rightPanel unterteilt und diese in 2 JSplitPane untergebracht.
Mein Problem ist, dass ich die Klasse LeftPanel nun dem leftPanel aus der Hauptklasse zuweisen möchte. Es gelingt mit leider nicht. Im beigefühten Beispiel habe ich diese dann der mainPanel zugeordnet. Es wird zwar was angezeigt, aber leider nicht so, wie ich es gerne hätte.
Wie kann ich den Inhalt der Klasse LeftPanel, dem Panel leftPanel ( createLeftPanel() )der Klasse MainFrame zuordnen?
Vielen Dank für einen kleinen Tipp!!!
ich über gerade mal wieder und erstelle gerade eine kleine GUI. Damit die Klasse MainFrame nicht zu voll und unübersichtlich wird, möchte ich die einzelnen Panel's in andere Klassen auslagern. Wie aus dem Beispiel zu entnehmen ist, habe ich die mainPanel in leftPanel und rightPanel unterteilt und diese in 2 JSplitPane untergebracht.
Mein Problem ist, dass ich die Klasse LeftPanel nun dem leftPanel aus der Hauptklasse zuweisen möchte. Es gelingt mit leider nicht. Im beigefühten Beispiel habe ich diese dann der mainPanel zugeordnet. Es wird zwar was angezeigt, aber leider nicht so, wie ich es gerne hätte.
Wie kann ich den Inhalt der Klasse LeftPanel, dem Panel leftPanel ( createLeftPanel() )der Klasse MainFrame zuordnen?
Vielen Dank für einen kleinen Tipp!!!
Code:
package project.gui;
import project.core.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import javax.swing.plaf.basic.BasicSplitPaneDivider;
import javax.swing.plaf.basic.BasicSplitPaneUI;
import javax.swing.border.*;
import java.net.URL;
import java.util.Vector;
import javax.swing.tree.*;
import project.core.PropertiesSettings;
public class MainFrame extends JFrame{
private static final long serialVersionUID = 1L;
private MainMenu mainMenu;
private MainToolBar mainToolBar;
private JPanel mainPanel;
private LeftPanel leftPanel;
private JPanel rightPanel;
private JPanel headPanel;
private JPanel navigatorPanel;
private JPanel buttonPanel;
private JSplitPane leftSplitPane;
private JSplitPane rightSplitPane;
public MainFrame() {
setTitle( "Test" );
setBackground( new Color(bgNormalR, bgNormalG, bgNormalB) );
createMainPanel();
createLeftPanel();
createRightPanel();
createSplitPane();
getContentPane().add( leftSplitPane );
}
private void createMainPanel() {
mainPanel = new JPanel();
mainPanel.setLayout( new BorderLayout() );
mainPanel.setBackground( new Color(bgNormalR,bgNormalG,bgNormalB) );
mainMenu = new MainMenu(this);
mainMenu.setBorder(null);
mainMenu.setBackground( new Color(bgNormalR,bgNormalG,bgNormalB) );
mainPanel.add( mainMenu, BorderLayout.NORTH );
mainToolBar = new MainToolBar(this);
// mainPanel.add( mainToolBar, BorderLayout.NORTH );
}
private void createLeftPanel() {
leftPanel = new LeftPanel(this); // <-- ?????????????
}
private void createRightPanel() {
rightPanel = new JPanel();
// rightPanel.setLayout( new BorderLayout() );
rightPanel.setBackground( new Color(bgNormalR,bgNormalG,bgNormalB) );
rightPanel.setBorder(new EtchedBorder( new Color(bgNormalR,bgNormalG,bgNormalB), new Color(bgNormalR,bgNormalG,bgNormalB) ));
}
private void createSplitPane() {
rightSplitPane = new JSplitPane( JSplitPane.HORIZONTAL_SPLIT );
leftSplitPane = new JSplitPane( JSplitPane.HORIZONTAL_SPLIT );
rightSplitPane.setLeftComponent( mainPanel );
rightSplitPane.setRightComponent( rightPanel );
rightSplitPane.setDividerLocation( 724 );
flattenSplitPane(rightSplitPane);
leftSplitPane = new JSplitPane( JSplitPane.HORIZONTAL_SPLIT );
leftSplitPane.setLeftComponent( leftPanel );
leftSplitPane.setRightComponent( rightSplitPane );
leftSplitPane.setDividerLocation( 150 );
flattenSplitPane(leftSplitPane);
}
public void flattenSplitPane(JSplitPane jSplitPane) {
jSplitPane.setUI(new BasicSplitPaneUI() {
public BasicSplitPaneDivider createDefaultDivider() {
return new BasicSplitPaneDivider(this) {
public void setBorder(Border b) {
}
};
}
});
jSplitPane.setBorder( null );
// jSplitPane.setBorder(new BevelBorder(BevelBorder.RAISED) );
// jSplitPane.setBorder(new BevelBorder(BevelBorder.LOWERED) );
// jSplitPane.setBorder(new EtchedBorder(new Color(bgDarkR,bgDarkG,bgDarkB), new Color(bgDarkR,bgDarkG,bgDarkB)) );
}
}
Code:
package project.gui;
import project.core.GradientButton;
import java.awt.*;
import javax.swing.*;
import project.core.PropertiesSettings;
public class LeftPanel extends JPanel{
private MainFrame frame;
private JPanel mainPanel;
private JPanel headPanel;
private JPanel navigatorPanel;
private JPanel buttonPanel;
public LeftPanel(MainFrame frame) {
this.frame = frame;
mainPanel = new JPanel();
mainPanel.setLayout( new GridLayout(3, 1) );
mainPanel.setBackground( new Color(bgNormalR,bgNormalG,bgNormalB) );
// mainPanel.setMinimumSize( new Dimension( 150, 768 ) );
createHeadPanel();
createNavigatorPanel();
createButtonPanel();
mainPanel.add(headPanel);
mainPanel.add(navigatorPanel);
mainPanel.add( buttonPanel);
frame.add( mainPanel, BorderLayout.WEST ); // <-- ????????????
// frame.getContentPane().add( frame.leftPanel );
}
private void createHeadPanel() {
headPanel = new JPanel();
headPanel.setBackground( new Color(bgNormalR,bgNormalG,bgNormalB) );
headPanel.add( new JButton( "Navigator" ) );
}
private void createNavigatorPanel() {
navigatorPanel = new JPanel();
navigatorPanel.setBackground( new Color(bgNormalR,bgNormalG,bgNormalB) );
}
private void createButtonPanel() {
buttonPanel = new JPanel();
buttonPanel.setBackground( new Color(bgNormalR,bgNormalG,bgNormalB) );
buttonPanel.setLayout( new GridLayout(4, 1));
buttonPanel.add( new GradientButton( "Navigator" ) );
buttonPanel.add( new JButton( "Favoriten" ) );
buttonPanel.add( new JButton( "Prozesse" ) );
buttonPanel.add( new JButton( "Historie" ) );
}
}