|
| haster - JScrollPane Fra : Nikolaj |
Dato : 10-12-00 23:02 |
|
som et sidste råb om hjælp tillader jeg mig at gentage lidt fra en mail jeg
har sendt en gang uden held.
Jeg opretter et JScrollPane der indeholder en JLabel med et billede i.
Resultatet er at jeg kan scrolle rundt i billedet.
Men når jeg opretter et JScrollPane med et JPanel i (som er større en
JScrollPane'et og indeholder knapper etc.) kan jeg ikke få lov til at
scrolle nogen steder.
Dvs. følgende virker fint, men prøver man at add'e et JPanel istedet for en
JLabel, kan man ikke scrolle. Hvorfor!!!
public class PanelWithScrollPane extends JPanel{
public PanelWithScrollPane() {
setLayout(new java.awt.BorderLayout());
Icon pic = new ImageIcon("c:/picture.jpg");
JLabel iconLabel = new JLabel(pic);
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport().add(iconLabel);
this.add(scrollPane);
}
}
Jeg skal bruge det i en opgave, der snart skal afleveres, så jeg tager
desperat imod et hvert forsøg på hjælp.
Tak.
Nikolaj
| |
Gerth Isaksen (11-12-2000)
| Kommentar Fra : Gerth Isaksen |
Dato : 11-12-00 11:50 |
|
Nikolaj skrev i meddelelsen <910ukr$2a44$1@news.cybercity.dk>...
>Dvs. følgende virker fint, men prøver man at add'e et JPanel istedet for en
>JLabel, kan man ikke scrolle. Hvorfor!!!
>
Hej Nikolaj
Prøv at vise den kode, som du ikke kan få til at virke... Måske har jeg
misforstået dit problem, for følgende virker fx udmærket:
public PanelWithScrollPane()
setLayout(new java.awt.BorderLayout());
Icon pic = new ImageIcon("c:/picture.jpg");
JLabel iconLabel = new JLabel(pic);
JPanel jp = new JPanel(new BorderLayout());
jp.add(new JButton("Dum knap"), BorderLayout.NORTH);
jp.add(iconLabel, BorderLayout.CENTER);
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport().add(jp);
this.add(scrollPane);
}
| |
N/A (11-12-2000)
| Kommentar Fra : N/A |
Dato : 11-12-00 15:26 |
|
| |
Gerth Isaksen (11-12-2000)
| Kommentar Fra : Gerth Isaksen |
Dato : 11-12-00 15:26 |
|
Nikolaj skrev i meddelelsen <912mvv$bso$1@news.cybercity.dk>...
>Her er noget kode, der ikke virker efter hensigten. Hvorfor forstår jeg
>ikke. Dit eksempel gør det hele endnu mere mystisk.
>
Du er tydeligvis rendt ind i et problem med layout-management. Prøv at
tvinge dit JPanel i en bestemt størrelse:
efter
> JPanel jp = new JPanel(null); // layout er null
> jp.setBounds(0,0,500,500);
Prøv så at indsætte
jp.setMinimumSize(new java.awt.Dimension(500,500));
jp.setPreferredSize(new java.awt.Dimension(500,500));
jp.setMaximumSize(new java.awt.Dimension(500,500));
| |
N/A (12-12-2000)
| Kommentar Fra : N/A |
Dato : 12-12-00 11:04 |
|
| |
Gerth Isaksen (12-12-2000)
| Kommentar Fra : Gerth Isaksen |
Dato : 12-12-00 11:04 |
|
Nikolaj skrev i meddelelsen <914qq4$30a5$1@news.cybercity.dk>...
>det var et godt forsøg, men det virker desværre stadig ikke..
>Jeg printer bounds ud til sidst efter at have vist framen og størrelsen på
>panelet er 500 x 500 som det skal være, men jeg kan stadig ikke få lov til
>at scrolle...
>Men tak for svaret, og hvis du har flere forslag, så hold dig ikke tilbage.
>Jeg VIL have det til at virke.
Hmm... ja, så er det snart mig, der er forvirret. Jeg har afprøvet dit
eksempel (med min tilføjelse), og det virker upåklageligt. Og det er vel den
samme stump kode, du har afprøvet det med?
| |
|
|