jeg vil gerne have scrollbars på et JPanel med gridlayout. problemet er at JPanelt bare bliver "trykket fladt" så scrollbarsne udebliver. min kode ser sådan her ud:
import java.awt.*;
import javax.swing.*;
import java.util.*;
public class FrameTest extends JFrame{
Vector bog = new Vector();//holder styr på alle personer
public FrameTest(){
super("test - tlfbog");
Person p;
/*
* standart person, bruges når en ny skal oprettes
* eller der skal udskrives gamle
*/
p = new Person();
p.setNavn("adam sørensen");
p.setEmail(" rhcp@sol.dk");
p.setTlf("xx-xx-xx-xx");
p.setMob("");
bog.add(p);
p = new Person("test pers 1"," test@sol.dk","xx-xx-xx-xx","xx-xx-xx-xx");
bog.add(p);
p = new Person("test pers 2"," test@sol.dk","xx-xx-xx-xx","xx-xx-xx-xx");
bog.add(p);
p = new Person("test pers 3"," test@sol.dk","xx-xx-xx-xx","xx-xx-xx-xx");
bog.add(p);
JPanel alt = new JPanel(new GridLayout(bog.size(),1));
for(int i=0;i<bog.size();i++){
p = (Person)(bog.get(i));
alt.add(p.lavPanel());
}
JScrollPane sp = new JScrollPane(alt);
sp.setPreferredSize(new Dimension(200,200));
getContentPane().setLayout(new BorderLayout());
getContentPane().add(alt,BorderLayout.CENTER);
}
public static void main(String[] args){
FrameTest app = new FrameTest();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(200,200);
app.show();
}
}
p.lavPanel() returnere et JPanel. koden til klasssen Person, ser sådan her ud:
import javax.swing.*;
import java.awt.*;
public class Person{
private String navn = "";
private String email = "";
private String tlf = "";
private String mob = "";
public Person() {
}
public Person(String newName, String newEmail, String newTlf, String newMob) {
navn = newName;
email = newEmail;
tlf = newTlf;
mob = newMob;
}
public String hentNavn(){
return navn;
}
public String hentEmail(){
return email;
}
public String hentTlf(){
return tlf;
}
public String hentMob(){
return mob;
}
public void setNavn(String newName){
navn = newName;
}
public void setEmail(String newEmail){
email = newEmail;
}
public void setTlf(String newTlf){
tlf = newTlf;
}
public void setMob(String newMob){
mob = newMob;
}
public String udskriv(){
String temp = "";
if(navn != ""){
temp += "Navn:\\t"+navn+"\\n";
}
if(email != ""){
temp+= "E-mail:\\t"+email+"\\n";
}
if(tlf != ""){
temp+= "Tlf:\\t"+tlf+"\\n";
}
if(mob != ""){
temp+= "Mobil:\\t"+mob+"\\n";
}
return temp;
}
public JPanel lavPanel(){
JPanel all = new JPanel(new GridLayout(4,1,5,5));
JPanel panelNavn = new JPanel(new GridLayout(1,1));
JPanel panelTlf = new JPanel(new GridLayout(1,1));
JPanel panelMob = new JPanel(new GridLayout(1,1));
JPanel panelEmail = new JPanel(new GridLayout(1,1));
JLabel labelNavn = new JLabel(navn);
JLabel labelTlf1 = new JLabel("Tlf:");
JLabel labelTlf2 = new JLabel(tlf);
JLabel labelMob1 = new JLabel("Mobil:");
JLabel labelMob2 = new JLabel(mob);
JLabel labelEmail1 = new JLabel("E-mail:");
JLabel labelEmail2 = new JLabel(email);
panelNavn.add(labelNavn);
panelTlf.add(labelTlf1);
panelTlf.add(labelTlf2);
panelMob.add(labelMob1);
panelMob.add(labelMob2);
panelEmail.add(labelEmail1);
panelEmail.add(labelEmail2);
all.add(panelNavn);
all.add(panelTlf);
all.add(panelMob);
all.add(panelEmail);
all.setMinimumSize(all.getPreferredSize());
return all;
}
}
på forhånd tak
adam
Køb en zebra - og kald den plet
[Redigeret d. 27/06-03 20:01:39 af adam]