Portal > Foren > Java > Desktop-Applikationen und Grafik > JPanel funktioniert nicht über indirektem Weg
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 01.09.2005, 21:44 Nach oben    #1
BoneCracker
Gast
 
Beiträge: n/a
Standard JPanel funktioniert nicht über indirektem Weg

Hi,
bei mir ist gerade etwas komisches... Hier ein Auszug aus meinem Quelltext:
Code:
package de.chribo.paint;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.UIManager;

import de.chribo.paint.component.ColorSelector;
import de.chribo.paint.component.DrawingArea;
import de.chribo.paint.component.PMenuBar;

public class Paint extends JFrame {
	static {
	  try {
	    UIManager.setLookAndFeel(
	      UIManager.getSystemLookAndFeelClassName() );
	  } catch( Exception e ) { e.printStackTrace(); }
	}
	
	private JScrollPane pane = new JScrollPane();
	
	public Paint() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setTitle("Simple Paint");
		JScrollPane pane = new JScrollPane();
		pane.setPreferredSize(new Dimension(600,400));
		// So Funtioniert es!
		pane.getViewport().add(new DrawingArea(800,800));
		// Wenn ich die obere Zeile auskommentiere, 
		// und diese Zeile darunter wieder nicht als
		// Kommentar deklariere, geht es nicht, obwohl es
		// eigentlich das exakt selbe machen sollte
		//addDrawingArea(new DrawingArea(800,800));
		Container cont = getContentPane();
		cont.setLayout(new BorderLayout(5, 5));
		cont.add(new JLabel("Optionen"), BorderLayout.WEST);
		cont.add(pane);
		cont.add(new ColorSelector(), BorderLayout.SOUTH);
		cont.add(new JLabel("x,y"), BorderLayout.EAST);
		cont.add(new JLabel("Ebenen"), BorderLayout.NORTH);
		new PMenuBar(this);
		pack();
		setVisible(true);
	}
	
	public void addDrawingArea(DrawingArea a) {
		pane.getViewport().add(a);
	}
	
	public static void main(String args[]) {
		Paint paint = new Paint();
	}
}
Wobei DrawingArea im Moment nichts anderes als ein JFrame ist, welches eine überschriebene paint()-Methode besitzt und einen etwas anderen Konstruktor hat (-> setPreferredSize() wird automatisch aufgerufen).

Wenn ich die DrawingArea über "pane.getViewport().add(new DrawingArea(800,800));" hinzufüge, funktioniert es so, wie es soll.
Bei "addDrawingArea(new DrawingArea(800,800));", was eigentlich exakt das selbe macht, funktioniert es nicht.

Wieso?

Mfg
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.09.2005, 04:16 Nach oben    #2
BoneCracker
Gast
 
Beiträge: n/a
Standard

Ok,
ich habs. Wahr wohl einfach zu müde...

Der Fehler versteckt sich hier:
Code:
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setTitle("Simple Paint");
		JScrollPane pane = new JScrollPane();
Hier habe ich ein lokales JScrollPane initialisiert, welches ich dann geadded habe. Die Variable "pane", welche eine Ebene höher sitzt, wird ignoriert. Damit wurde bei Methodenaufruf "addDrawingArea" natürlich nicht in das geaddete JScrollPane benutzt.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Grösse des JFrames and JPanel anpassen alekz Desktop-Applikationen und Grafik 1 15.05.2006 14:52
jPanel nach bestätigen eines dialoges wechseln risa Desktop-Applikationen und Grafik 14 18.04.2006 21:02
onLoad="test.style.visibility = 'hidden' funktioniert im FF nicht Corvin JavaScript und AJAX 7 13.02.2006 16:52
JPanel in JFrame ersetzen muge Desktop-Applikationen und Grafik 2 24.11.2005 22:18
JTabbedPanel & JPanel - Probleme mit dem Layout Tactive Desktop-Applikationen und Grafik 8 24.02.2005 15:27


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45