Der JPanel und ScrollPanel funktionieren nicht richtig:
Ich will eine unterschiedliche Menge an JPanels erstellen, die dann in ein weiteres Panel geadded werden. Das klappt soweit auch, allerdings nur 7 oder 8 Stück, danach werden mir die Zahlen, um welches Panel es sich handelt nicht mehr angezeigt, obwohl sich da eigentlich die Scrollbar aktivieren sollte.
Der weitere Fehler ist: Wenn man die Fenstergröße so ändert, dass die Scrollbars angezeigt werden und diese dann bewegt, dann wird der Hintergrund der Panels undeutlich bzw. schwarz, da stimmt wohl was mit der paint Methode nicht, aber finde meinen Fehler nicht.
Wäre echt super, wenn mir jemand weiter helfen könnte..
Ich will eine unterschiedliche Menge an JPanels erstellen, die dann in ein weiteres Panel geadded werden. Das klappt soweit auch, allerdings nur 7 oder 8 Stück, danach werden mir die Zahlen, um welches Panel es sich handelt nicht mehr angezeigt, obwohl sich da eigentlich die Scrollbar aktivieren sollte.
Der weitere Fehler ist: Wenn man die Fenstergröße so ändert, dass die Scrollbars angezeigt werden und diese dann bewegt, dann wird der Hintergrund der Panels undeutlich bzw. schwarz, da stimmt wohl was mit der paint Methode nicht, aber finde meinen Fehler nicht.
Wäre echt super, wenn mir jemand weiter helfen könnte..
Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridLayout;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.ListModel;
public class TestFenster {
public static void main(String[]args){
new Fenster();
}
}
class Fenster extends JFrame {
private JSplitPane mainWindowSplitPane;
private JPanel mainWindowPanel;
private JSplitPane optionSplitPane;
private JScrollPane buttonScrollPane;
private JPanel buttonPanel;
private JList jList;
private JScrollPane jListScrollPane;
private JScrollPane mainWindowScrollPane;
private int num;
public Fenster(){
this.setSize(1050, 600);
initGUI();
//Hier ist der Fehler!
num = 7;
this.mainWindowPanel.setLayout(new GridLayout(num,1));
for(int i=0;i<num;i++){
mainWindowPanel.add(new ModuleTable(i+1));
}
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void initGUI(){
//Set Look & Feel
try {
javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
e.printStackTrace();
}
mainWindowSplitPane = new JSplitPane();
getContentPane().add(mainWindowSplitPane, BorderLayout.CENTER);
mainWindowSplitPane.setPreferredSize(new java.awt.Dimension(1059, 578));
{
mainWindowScrollPane = new JScrollPane();
mainWindowSplitPane.add(mainWindowScrollPane, JSplitPane.LEFT);
mainWindowScrollPane.setPreferredSize(new java.awt.Dimension(741, 574));
{
mainWindowPanel = new JPanel();
mainWindowScrollPane.setViewportView(mainWindowPanel);
mainWindowPanel.setPreferredSize(new java.awt.Dimension(691, 570));
}
}
{
optionSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
mainWindowSplitPane.add(optionSplitPane, JSplitPane.RIGHT);
optionSplitPane.setPreferredSize(new java.awt.Dimension(294, 574));
{
jListScrollPane = new JScrollPane();
optionSplitPane.add(jListScrollPane, JSplitPane.TOP);
jListScrollPane.setPreferredSize(new java.awt.Dimension(292, 254));
{
ListModel jListModel =
new DefaultComboBoxModel(
new String[] { "Item One", "Item Two" });
jList = new JList();
jListScrollPane.setViewportView(jList);
jList.setModel(jListModel);
jList.setPreferredSize(new java.awt.Dimension(288, 244));
}
}
{
buttonScrollPane = new JScrollPane();
optionSplitPane.add(buttonScrollPane, JSplitPane.BOTTOM);
buttonScrollPane.setPreferredSize(new java.awt.Dimension(366, 177));
{
buttonPanel = new JPanel();
buttonScrollPane.setViewportView(buttonPanel);
buttonPanel.setPreferredSize(new java.awt.Dimension(288, 241));
}
}
}
}
}
class ModuleTable extends JPanel {
private int tableNumber;
public ModuleTable(int tableNumber){
this.tableNumber=tableNumber;
}
public void paint(Graphics g){
//Draw BackGround
g.setColor(Color.GRAY);
for(int i=0;i<this.getWidth();i+=10){
for(int j=0;j<this.getHeight();j+=10){
g.drawLine(0,j, getWidth(), j);
g.drawLine(i, 0, i, getHeight());
}
}
//End Background
g.setColor(Color.BLACK);
g.drawString(String.valueOf(this.tableNumber), 10, 70);
g.drawLine(0, 80, getWidth(), 80);
g.drawLine(30, 0, 30, this.getHeight());
}
}