![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Gast
Beiträge: n/a
|
Hallo,
ich habe folgendes Problem auf, dass ich noch keine Antwort gefunden habe. Ich möchte ein Bild seperat über einen FileOpendialog laden und dann in einem JScrollPane anzeigen (Die Bilder können recht groß sein - daher sind ScrollBars von nöten). Code:
public class GuiTexturApp{
//Programmoberfläche
JFrame frameguitexturapp;
//Menüeintrag Bild öffnen
JMenuItem filemenuopenitem;
JMenuItem filemenusaveitem;
JMenuItem filemenusaveasitem;
//Menüeintrag Programm schließen
JMenuItem filemenuexititem;
ImageView image;
//dynamischer Scrollbereich
JScrollPane scrollpane;
//Unterscheidung der Menüeinträge und entsprechende Ausführungen
final MenuAction myactionlistener = new MenuAction();
final JFileChooser filec = new JFileChooser();
...
/**
* Die Prozedur öffnet einen FileOpen-Dialog
* und sorgt dafür, dass das geladene Bild
* im Programmfenster angezeigt wird.
*/
private void fileMenuOpenAction() {
int returnVal = filec.showOpenDialog(frameguitexturapp);
if (returnVal == JFileChooser.APPROVE_OPTION) {
ImageIcon ii = new ImageIcon(filec.getSelectedFile().getPath());
image.setImage(ii.getImage());
image.setPreferredSize(new Dimension(ii.getIconWidth(),
ii.getIconHeight()));
//Bereich, der sich automatisch erweitert (Scrollbars, wenn der Inhalt größer wird
}
}
...
/**
* Die Prozedur erzeugt die Programmoberfläche.
* Es werden Einstellungen zum Aussehen, Größe, etc.
* des Programmfensters getroffen.
*
*/
private void createGuiTexturApp(){
frameguitexturapp = new JFrame("Extraktion von Textur");
frameguitexturapp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Menüleiste hinzufügen
frameguitexturapp.setJMenuBar(createMenuBar());
image = new ImageView();
scrollpane = new JScrollPane(image);
//scrollpane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
//scrollpane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
frameguitexturapp.getContentPane().add(scrollpane);
//Programmfenster anzeigen
frameguitexturapp.setLocation(50, 50);
frameguitexturapp.setSize(650, 460);
frameguitexturapp.setVisible(true);
}
...
Der Einsatz von img.setPreferredSize(new Dimension(xx,yy)); in der createGuiTexturApp brachte zwar, dass ich ein wenig scrollen konnte, aber nur unter denen in new Dimension(xx,yy) angegebenen Werten. Da ich aber bei der Erzeugung der Oberfläche noch nicht weiß, welche Ausmaße das Bild hat, wollte ich diese Zeilen auf die Methode fileOpenMenuAction verlagern. Jedoch brachte das nicht den erwünschten Effekt. Die ganzen Spielereien mit scrollbarpolicy haben auch keinen Erfolg gebracht. Tutorials - und andere Threads hatten ja nicht das Problem, dass ich die Ausmaße vom image (Typ ImageView) noch nicht kannte. Anbei, wie ziehe ich das JScrollPane wieder aus dem JFrame heraus, nachdem ich es bereits eingefügt habe. ist das getContentPane das Stichwort?? Für Eure Mühe im voraus besten Dank phate |
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Bild anzeigen je nach datei | Garnele | PHP-Programmierung | 13 | 01.01.2006 13:39 |
| Bild Komponent - Bild zurecht schneiden | Robinson | Desktop-Applikationen und Grafik | 5 | 31.12.2005 13:53 |
| Bild anzeigen und verschieben | Spaceangel | Desktop-Applikationen und Grafik | 3 | 23.11.2005 11:15 |
| Warum kann ich mein Bild nicht laden? | Java17 | Desktop-Applikationen und Grafik | 25 | 12.03.2005 09:03 |
| Bild von Webseite laden | ehli75 | Allgemeine Java-Programmierung | 2 | 27.01.2005 21:46 |