Guten Morgen zusammen,
ich hab ein kleines Problem mit meinem JScrollPane.
Ich habe als Grundlayout ein Borderlayout und für den Center Bereich habe ich ein Jpanel mit Flowlayout darin enthalten ist mein JScrollPane.
Da ich den Centerbereich bei ändeung der Fenstergröe anpassen möchte muss ich natürlich auch das JScrollPane anpassen.
ich habe versucht das mit JPanel.getwidth zu lösen aber da bekomme ich nur eine 0 zurück.
Der Teil um den es geht startet ab Zeile 111.
Ist getWidth() nicht richtig? muss ich dafür etwas anderes nehmen?
ich hab ein kleines Problem mit meinem JScrollPane.
Ich habe als Grundlayout ein Borderlayout und für den Center Bereich habe ich ein Jpanel mit Flowlayout darin enthalten ist mein JScrollPane.
Da ich den Centerbereich bei ändeung der Fenstergröe anpassen möchte muss ich natürlich auch das JScrollPane anpassen.
ich habe versucht das mit JPanel.getwidth zu lösen aber da bekomme ich nur eine 0 zurück.
Java:
public MainWindow()
{
txtOutputStream.setBorder(null);
txtOutputStream.setBackground(new Color(240, 240, 240));
txtOutputStream.setFont(new Font("Tahoma", Font.PLAIN, 8));
txtOutputStream.setVerifyInputWhenFocusTarget(false);
txtOutputStream.setText("OUTPUT:");
txtOutputStream.setSize(new Dimension(500, 20));
txtOutputStream.setMinimumSize(new Dimension(500, 10));
txtOutputStream.setPreferredSize(new Dimension(500, 10));
txtOutputStream.setHorizontalAlignment(SwingConstants.LEFT);
txtOutputStream.setColumns(180);
//Einstellungen Mainwindow
setTitle("Test Programm");
setSize(1500, 900);
setLocationRelativeTo(null);
OutputStream("Programm wurde gestartet");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Inizialiesieren der Grafikobjekte
//Panel links Schachtel hinzufügen
btnSchachtelHinzufügen = new JButton("Schachtel hinzufügen");
btnSchachtelLaden = new JButton("Datei laden");
lblSchachtel[0] = new JLabel("Schachtel Teil 1");
ausgewählteBoxdaten[0] = new Boxdata();
for (int i = 1; i<=9; i++)
{
lblSchachtel[i] = new JLabel("Schachtel Teil " + (i+1));
cmbSchachtel[i] = new JComboBox<String>();
}
cmbSchachtel[0] = new JComboBox<String>();
cmbSchachtel[0].addItem("Kein Verzeichnis ausgewählt");
btndelete = new JButton();
btndelete.setMargin(new Insets(0, 0, 0, 0));
btndelete.setIcon(new ImageIcon(ErstesProjekt.class.getResource("/res/Images/delet.png")));
getContentPane().setLayout(new BorderLayout(0, 0));
//Set Elements Panel left
btnSchachtelLaden.setBounds(10, 21, 400, 36);
lblSchachtel[0].setBounds(10, 55, 400, 36);
cmbSchachtel[0].setBounds(10, 83, 400, 36);
cmbSchachtel[0].setName("0");
btnSchachtelHinzufügen.setBounds(10, 130, 400, 36);
btndelete.setBounds(415, 83, 36, 36);
pnlLeft.setLayout(null);
pnlLeft.add(btnSchachtelLaden);
pnlLeft.add(lblSchachtel[0]);
pnlLeft.add(cmbSchachtel[0]);
pnlLeft.add(btnSchachtelHinzufügen);
getContentPane().add(pnlLeft, BorderLayout.WEST);
pnlLeft.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 0)), "Schachtelauswahl", TitledBorder.LEADING, TitledBorder.BELOW_TOP, null, new Color(0, 0, 0)));
pnlLeft.setPreferredSize(new Dimension(460, 200));
pnlLeft.setLocation(new Point(15, 20));
//Panel oben
getContentPane().add(pnlTop, BorderLayout.NORTH);
pnlTop.setBorder(new LineBorder(new Color(0, 0, 0)));
FlowLayout flowLayout = (FlowLayout) pnlBottom.getLayout();
flowLayout.setAlignment(FlowLayout.LEFT);
//Panel unten
getContentPane().add(pnlBottom, BorderLayout.SOUTH);
pnlBottom.setBorder(new LineBorder(new Color(0, 0, 0)));
pnlBottom.add(txtOutputStream);
// Panel rechts Preview
getContentPane().add(pnlRight,BorderLayout.EAST);
pnlRight.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, new Color(255, 255, 255), new Color(160, 160, 160)), "Voransicht", TitledBorder.LEADING, TitledBorder.BELOW_TOP, null, Color.BLACK));
pnlRight.setLocation(new Point(700, 10));
pnlRight.setPreferredSize(new Dimension(370, 844));
pnlRight.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
lblboxPreviewLbl[0] = new JLabel("Schachtel 1");
lblboxPreviewLbl[0].setPreferredSize(new Dimension (340,20));
lblboxPreviewPic[0] = new JLabel();
lblboxPreviewPic[0].setPreferredSize(new Dimension (340,200));
lblboxPreviewPic[0].setIcon(null);
scrlpRight.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrlpRight.setAutoscrolls(true);
scrlpRight.setViewportBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
scrlpRight.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scrlpRight.setLocation(new Point(20, 5));
scrlpRight.setPreferredSize(new Dimension(360, 784));
scrlpRight.getVerticalScrollBar().setUnitIncrement(15);
pnlPreview.setAlignmentY(Component.TOP_ALIGNMENT);
pnlPreview.setAlignmentX(Component.LEFT_ALIGNMENT);
pnlRight.add(scrlpRight);
scrlpRight.setViewportView(pnlPreview);
pnlPreview.setLayout(null);
lblboxPreviewLbl[0].setBounds(5,5,340,20);
pnlPreview.add(lblboxPreviewLbl[0]);
lblboxPreviewPic[0].setBounds(5,25,340,200);
pnlPreview.add(lblboxPreviewPic[0]);
//Panel Center
getContentPane().add(pnlCenter,BorderLayout.CENTER);
pnlCenter.setPreferredSize(new Dimension(400, 800));
pnlCenter.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 0), 2), "Schachteleditor", TitledBorder.LEADING, TitledBorder.BELOW_TOP, null, new Color(0, 0, 0)));
pnlCenter.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
JScrollPane sclpCenter = new JScrollPane();
sclpCenter.setPreferredSize(new Dimension(pnlCenter.getWidth(), 775));
sclpCenter.setLocation(new Point(20, 5));
sclpCenter.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
sclpCenter.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
pnlCenter.add(sclpCenter);
Der Teil um den es geht startet ab Zeile 111.
Ist getWidth() nicht richtig? muss ich dafür etwas anderes nehmen?