Witam
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.david;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
/**
*
* @author Dawid
*/
public class MakeGUI
{
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
@Override public void run()
{
PhoneBookFrame pbf = new PhoneBookFrame();
pbf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pbf.setVisible(true);
}
});
}
}
//Głowna ramka
class PhoneBookFrame extends JFrame
{
public PhoneBookFrame()
{
setSize(300,300);
PhoneBookPanel panel = new PhoneBookPanel();
panel.setPreferredSize(new Dimension(100,100));
JScrollPane pane = new JScrollPane();
pane.getViewport().add(panel);
add(pane,BorderLayout.NORTH);
add(new JButton("Dodaj"),BorderLayout.SOUTH);
}
}
//Panel z numerami telefonow. Uzywamy GBC
class PhoneBookPanel extends JPanel
{
public PhoneBookPanel()
{
setSize(100,100);
setLayout(new GridBagLayout());
add(new JLabel("Imie"),new GBC(0,0).setFill(GBC.NONE).setWeight(100,0).setAnchor(GBC.CENTER));
add(new JLabel("Nazwisko"),new GBC(1,0).setFill(GBC.NONE).setWeight(100,0).setAnchor(GBC.CENTER));
for(int i=1;i<20;i++)
{
add(new JLabel("xxx"),new GBC(0,i));
add(new JLabel("12345"),new GBC(1,i));
}
}
}
Otóż dodanie panela do JScrollPane nic nie daje. Nie ma żadnych suwaków. A komponent wraz z dodawaniem etykiet sam się rozszerza.