AWT ScrollPane Problem

flippi84

Neues Mitglied
Zu aller erst guten Tag einmal :)

Bei mir handelt es sich um einen Umsteiger von C++ nach Java. In C++ besitze ich zumindest grundlegende Kenntnisse... Ich war schon sehr erstaunt was Java mit seiner API alles zu bieten hat, das hat einen ja regelrecht erschlagen :autsch: So kam ich dann jetzt schon mal zu meinem ersten Problem.

Die Aufgabe lautet: Ein Raster über die GUI zu erstellen, welches einer Leiterplatte mit zusammenhängenden Dreierketten entspricht. Die Rastergröße soll durch Anzahl der Zeilen und Spalten übergebbar sein. Soweit so gut.
Dazu habe ich mir ein Fenster der Klasse Frame erstellt, eine ScrollPane sowie ein Objekt von einer Klasse Raster. Diese Klasse Raster ist eine Erweiterung der Klasse Canvas zum Zeichnen meines Rasters. Das Objekt der Klasse Raster füge ich zur ScrollPane hinzu, die ScrollPane habe ich auf das Fenster gesetzt.
Mein Problem dabei: Wenn das Raster größer wird als das Fenster, schneidet er mir alles ab was außerhalb der Maße des Fensters liegt, die ScrollBars werden jedoch nicht angezeigt sodass der Rest über die ScrollBars erreichbar wäre. Wo liegt das Problem?

hier meine Quelltexte:

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Rasterlayout
{
    public ScrollPane scrollpane;
    public int Spalten;
    public int Zeilen;

    public Rasterlayout(int Zeilen, int Spalten)
    {
    	  this.Spalten = Spalten;
    	  this.Zeilen = Zeilen;
        erstelleFenster();
    }
    
    public void erstelleFenster()
    {
    	  Frame fenster = new Frame("Rasterlayout");
        fenster.setBounds(100,100,600,600);
        fenster.addWindowListener(new FensterSchliesser(fenster));
        
        scrollpane = new ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED);
        scrollpane.setBackground(Color.WHITE);

        Raster raster = new Raster(Zeilen, Spalten);
        scrollpane.add(raster);

        fenster.add(scrollpane);
        fenster.setVisible(true);
    }   	

    public static void main(String[] args)
    {
          Rasterlayout rasterlayout = new Rasterlayout(50,5);
    }


    private class FensterSchliesser implements WindowListener
    {
        private Frame fenster;

        public FensterSchliesser(Frame fenster)
        {
            this.fenster = fenster;
        }

        public void windowActivated(WindowEvent e) {}
        public void windowClosed(WindowEvent e) {}
        public void windowClosing(WindowEvent e) 
        {
            fenster.dispose();
            System.exit(0);
        }
        public void windowDeactivated(WindowEvent e) {}
        public void windowDeiconified(WindowEvent e) {}
        public void windowIconified(WindowEvent e) {}
        public void windowOpened(WindowEvent e) {}
       
    }
    
    
    

}

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Raster extends Canvas
    {

	    	public int Zeilen;
	    	public int Spalten;
	    	
	    	public Raster(int Zeilen, int Spalten)
	    	{
	    		this.Zeilen = Zeilen;
	    		this.Spalten = Spalten;
	
	    	}
	    	
	    	public void paint(Graphics g)
	    	{	
	    	   super.paint(g);
	    	   int x = 0;
	    	   int y = 0;
	    	   for (int j = 0; j < Zeilen;j++)
	    	   {
		    	   for (int i = 0; i < Spalten;i++)
		    	   {
			    		g.setColor(Color.decode("#DF8439"));
			    		g.fillRect(x+1,y+1,99,20);
			    		g.setColor(Color.BLACK);
			    		g.drawRect(x+1,y+1,99,20);
			    		g.setColor(Color.WHITE);
			    		g.fillOval(x+11,y+6,10,10);
			    		g.fillOval(x+44,y+6,10,10);
			    		g.fillOval(x+77,y+6,10,10);
			    		g.setColor(Color.BLACK);
			    		g.drawOval(x+11,y+6,10,10);
			    		g.drawOval(x+44,y+6,10,10);
			    		g.drawOval(x+77,y+6,10,10);
			    		x = x + 103;
		 			}
		 			x = 0;
		 			y = y + 23;
	 			}
	    	}
    }

Für jede Hilfe wäre ich dankbar
:toll:
 
V

vanny

Gast
Hmm,

gibt es einen speziellen Grund, warum du mit AWT-Komponenten arbeitest?

Ich würde sonst Swnig empfehlen und nicht die paint(); vom Canvas sondern die paintComponent(); von JPanel überschreiben. ... vieleicht liegt es ja schon daran.

noch ne Idee wäre dem Canvas mal die PreferredSize deiner Zeichnung zuzuweisen, denn darauf bezieht sich wohl die ScrollPane.(ist nur so daher geraten, muss also nicht stimmen was ich hier schreib ^^)

Gruß vanny
 

flippi84

Neues Mitglied
Hey cool danke für die schnelle Antwort :) und deine Antwort hat mir weiter geholfen, hab es mit der setPreferredSize(new Dimension(Spalten*103,Zeilen*23)) gelöst :)

So nun zu deiner Frage.... Also grundsätzlich haben wir bisher in der Vorlesung auch Klassen der Swing Bibliothek verwendet, jedoch erarbeiten wir parallel in den Übungen ein Layout-Programm zum Entwurf elektronischer Schaltungen. In diesen Projekt jedoch greift der Prof auf Klassen der AWT Bibliothek zurück, keine Ahnung warum. Vielleicht erschließt es sich noch in der weiteren Entwicklung des Programms. Wie du siehst verwenden wir auch ein Frame anstatt des JFrame. Wenn es dich interessiert schau einfach mal hier vorbei:

kramann.info

kramann.info

Ich hoffe des schicken von Links macht hier keine Probleme :bahnhof:

Vielen Dank für deine Hilfe erstmal, ich freu mich :toll:
 
V

vanny

Gast
ich hab ma bei kramann reingeschaut und finds lustig, das er in seinem Codebeispiel bei Uebung 13 nur AWT verwendet aber auch swing importiert, genau wie bei deinem code hier ^^.

kannst ihn ja mal darauf hinweisen :p

Gruß Vanny
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Problem mit jPanel (FlowLayout) in ScrollPane AWT, Swing, JavaFX & SWT 4
M Problem beim Einsatz von ScrollPane (Fenster spielt verrückt AWT, Swing, JavaFX & SWT 2
S Problem mit Scrollpane & Bild AWT, Swing, JavaFX & SWT 3
M Problem bei Verbinden v. jTable, ScrollPane u. JLabel AWT, Swing, JavaFX & SWT 5
E GridLayout auf ScrollPane AWT, Swing, JavaFX & SWT 4
N Einer TextArea ein ScrollPane hinzufügen AWT, Swing, JavaFX & SWT 8
TheWhiteShadow JavaFX ScrollPane nimmt nicht genug platz ein AWT, Swing, JavaFX & SWT 3
J Gridpane Breite in Scrollpane automatisch anpassen AWT, Swing, JavaFX & SWT 2
E JavaFX Cursor-Position im ScrollPane AWT, Swing, JavaFX & SWT 0
E Swing Liste in Scrollpane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
C JavaFX ScrollPane schießt über das Ziel hinaus... AWT, Swing, JavaFX & SWT 1
DaCrazyJavaExpert Swing Zwei gleichgroße Panels in einem Scrollpane mit Layout AWT, Swing, JavaFX & SWT 9
T JavaFX Zoom in ScrollPane AWT, Swing, JavaFX & SWT 1
L Java FX Scrollpane automatisch resizen AWT, Swing, JavaFX & SWT 3
P Java ScrollPane und ViewPort AWT, Swing, JavaFX & SWT 2
M JavaFX Scrollpane: Style von Contentpanel default AWT, Swing, JavaFX & SWT 1
S JavaFX Image Skalierung in Scrollpane, Scrollpane resized sich nicht AWT, Swing, JavaFX & SWT 5
V Netbeans: TabbedPane, ScrollPane und Graphics AWT, Swing, JavaFX & SWT 4
S passende PaintComponent ? Zeichnen in TextArea mit Scrollpane ? AWT, Swing, JavaFX & SWT 2
O ScrollPane AWT, Swing, JavaFX & SWT 2
W JavaFX Scrollpane elementweise scrollen AWT, Swing, JavaFX & SWT 4
M SWT ScrollPane Größe zu klein AWT, Swing, JavaFX & SWT 6
Z Swing Welcher Layoutmanager bei ScrollPane? AWT, Swing, JavaFX & SWT 4
S ScrollPane in Textarea und auf Panel AWT, Swing, JavaFX & SWT 4
Bluedaishi Synchrone ScrollPane trennen AWT, Swing, JavaFX & SWT 2
G JTable als fixierte Spalte in Scrollpane scrollt nicht mit... AWT, Swing, JavaFX & SWT 1
M MouseListener auf table oder scrollPane AWT, Swing, JavaFX & SWT 11
W Swing Nicht-Editierbares Textfeld in Panel in ScrollPane AWT, Swing, JavaFX & SWT 9
W Swing Zum Ende einer Scrollpane scrollen AWT, Swing, JavaFX & SWT 2
S Bestimmten Bereich eines Bildes im JFrame mit Scrollpane anzeigen AWT, Swing, JavaFX & SWT 0
Kenan89 Vertikal und horizontal zentrierter Pane in ScrollPane AWT, Swing, JavaFX & SWT 5
Kenan89 Java FX ScrollPane Content mittig setzen AWT, Swing, JavaFX & SWT 5
P ScrollPane nach zeichnen dynamisch resize AWT, Swing, JavaFX & SWT 7
O Swing GroupLayout und Scrollpane AWT, Swing, JavaFX & SWT 3
T scrollpane taucht nicht auf AWT, Swing, JavaFX & SWT 6
D Zoom zur Mouseposition in ScrollPane AWT, Swing, JavaFX & SWT 5
S Swing Bild in JPanel in ScrollPane neu zeichnen AWT, Swing, JavaFX & SWT 2
S Canvas in ScrollPane wird beim scrollen immer neu gezeichnet AWT, Swing, JavaFX & SWT 3
D JTable in Scrollpane AWT, Swing, JavaFX & SWT 3
H ScrollPane AWT, Swing, JavaFX & SWT 3
0 JTable im ScrollPane AWT, Swing, JavaFX & SWT 3
S Swing Scrollpane und JTables AWT, Swing, JavaFX & SWT 6
D Swing JList: ScrollPane auf JPanel ansprechen AWT, Swing, JavaFX & SWT 7
Spin JTable Header wird nicht angezeigt ohne ScrollPane AWT, Swing, JavaFX & SWT 3
F Swing Mehrere Textfelder in Scrollpane einfügen und dann zum Scrollen bringen? AWT, Swing, JavaFX & SWT 4
_dp Swing ScrollPane unterschlägt Großteil der Tabelle AWT, Swing, JavaFX & SWT 7
T ScrollPane Lösgelöst vom JPanel?!? AWT, Swing, JavaFX & SWT 4
D Panel zu Scrollpane adden AWT, Swing, JavaFX & SWT 8
T LayoutManager Panel in Scrollpane mittig ausrichten AWT, Swing, JavaFX & SWT 2
E JList in ScrollPane auf größe bringen AWT, Swing, JavaFX & SWT 5
A ScrollPane + internalFrame AWT, Swing, JavaFX & SWT 2
H ScrollPane scrollt ungefragt drauf los! AWT, Swing, JavaFX & SWT 5
T ScrollPane scrollt nicht einwandfrei AWT, Swing, JavaFX & SWT 3
G ScrollPane: getPreferredSize() AWT, Swing, JavaFX & SWT 11
M Labels in ScrollPane mit Linie verbinden AWT, Swing, JavaFX & SWT 2
P ScrollPane klappt zusammen beim verkleinern des Frames AWT, Swing, JavaFX & SWT 2
S Swing JTree in ScrollPane einen ToolTip geben AWT, Swing, JavaFX & SWT 2
T ScrollBar aus ScrollPane verstecken AWT, Swing, JavaFX & SWT 2
N ScrollPane in ein Fenster einfügen AWT, Swing, JavaFX & SWT 2
N ScrollPane passt sich nicht an AWT, Swing, JavaFX & SWT 4
D ScrollPane Anpassungen AWT, Swing, JavaFX & SWT 7
K TextArea auf Scrollpane AWT, Swing, JavaFX & SWT 3
G Tabellenköpfe trotz Scrollpane ausschalten AWT, Swing, JavaFX & SWT 5
P Automatisches Mitscrollen der ScrollPane AWT, Swing, JavaFX & SWT 2
R ImageViewer - Bild mit ScrollPane AWT, Swing, JavaFX & SWT 4
K Row und ColumnHeader in ScrollPane werden "verwischt&qu AWT, Swing, JavaFX & SWT 4
F Resize in ScrollPane AWT, Swing, JavaFX & SWT 4
M Swing: ScrollPane Button mit Pfeil ändern wie? AWT, Swing, JavaFX & SWT 2
F Scrollpane scrollt immer zur TextArea AWT, Swing, JavaFX & SWT 8
vogella JTable und JScrollPane - ScrollPane immer in der Mitte AWT, Swing, JavaFX & SWT 2
B Komponenten über ScrollPane hinaus angezeigt. AWT, Swing, JavaFX & SWT 3
S JTable (Scrollpane und ColumnNames) und JComboBox AWT, Swing, JavaFX & SWT 2
T Warum keine ScrollBars in diesem ScrollPane? AWT, Swing, JavaFX & SWT 3
A Scrollspeed bei Scrollpane erhöhen? AWT, Swing, JavaFX & SWT 2
A Scrollpane verschmiert beim scrollen AWT, Swing, JavaFX & SWT 5
P Resize von ScrollPane Inhalten AWT, Swing, JavaFX & SWT 2
S ScrollPane zeigt scrollbalken nicht an AWT, Swing, JavaFX & SWT 12
A JTable in ScrollPane scrollt nicht horizontal AWT, Swing, JavaFX & SWT 2
M JMenu verschwindet unter ScrollPane AWT, Swing, JavaFX & SWT 3
G jTable + ScrollPane (+ TableModel) AWT, Swing, JavaFX & SWT 7
G ScrollPane anfärben AWT, Swing, JavaFX & SWT 2
E Ärger mit ScrollPane, JTable und der Resize-Einstellung AWT, Swing, JavaFX & SWT 2
J Inhalt eines Scrollpane speichern AWT, Swing, JavaFX & SWT 3
M Eigen gemaltes JPanel im ScrollPane. klappt nicht. :-( AWT, Swing, JavaFX & SWT 10
M Wo bleibt mein ScrollPane? AWT, Swing, JavaFX & SWT 3
D Probleme mit TableLayoutManager und ScrollPane AWT, Swing, JavaFX & SWT 3
G Anwendung um Scrollpane erweitern AWT, Swing, JavaFX & SWT 2
G Scrollpane in null-Layout einfügen AWT, Swing, JavaFX & SWT 5
N Frame in ScrollPane einfügen AWT, Swing, JavaFX & SWT 5
J Balken von ScrollPane immer unten AWT, Swing, JavaFX & SWT 6
Z Probleme mit eigenem Canvas und ScrollPane AWT, Swing, JavaFX & SWT 8
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
S Layout - Problem AWT, Swing, JavaFX & SWT 1
Tassos JavaFX/Problem mit der Maussteuerung in Stackpane AWT, Swing, JavaFX & SWT 7
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
A JavaFX Controller Problem AWT, Swing, JavaFX & SWT 1
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben