JScrollPane resized nicht richtig...

TKausL

Top Contributor
Hallo.

Habe folgenden Code:

Java:
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextField;


public class C extends JFrame {
	JTextField input = new JTextField();
	JButton nicklist = new JButton();
	JScrollPane scroll_nicklist = new JScrollPane();
	JButton output = new JButton();
	public C(){
		super("Test");
		setLayout(null);
		A.loggedin = true;
		addWindowListener(new java.awt.event.WindowAdapter() {
		    public void windowClosing(WindowEvent winEvt) {
		    	A.loggedin = false;
		    }
		});
		addComponentListener(new ComponentListener(){
			public void componentHidden(ComponentEvent e){}
			public void componentResized(ComponentEvent e){
				int x = getWidth();
				int y = getHeight();
				if(x < 500){
					x = 500;
				}
				if(y < 300){
					y = 300;
				}
				setSize(x, y);
				x = getContentPane().getWidth();
				y = getContentPane().getHeight();
				input.setBounds(0, y-28, x, 28);
				scroll_nicklist.setBounds(x-200, 0, 200, y-28);
				output.setBounds(0, 0, x-200, y-28);
				System.out.println("RESIZE auf " + getWidth() + "x" + getHeight());
				
			}
			public void componentShown(ComponentEvent e){}
			public void componentMoved(ComponentEvent e){}
			
		});
		input.setFont(new Font("MS Sans Serif", 0, 13));
		add(input);
		//add(nicklist);
		add(output);
	    scroll_nicklist.setVerticalScrollBarPolicy(20);
	    scroll_nicklist.setHorizontalScrollBarPolicy(30);
	    scroll_nicklist.setViewportView(nicklist);
	    add(scroll_nicklist);
	    nicklist.setPreferredSize(new Dimension(200, 493));
		setVisible(true);
	}
	



}

Das Problem ist, dass die rechte Pane nicht anständig mitresized. beim ersten resize tut sie garnichts, beim 2. resize nimmt sie die größe an, die sie beim 1. resize hätte annehmen müssen usw.
Kann man das irgendwie beheben?
 

MQue

Top Contributor
Also du must genauer schreiben, was da nicht geht, ich kanns jetzt nicht nachvollziehen
Was du auf jeden Fall machen musst ist alles raus aus dem Konstruktor, im Konstruktor sollte man so wenig wie möglich machen und wenn dann nur eine Methode aufrufen aber nicht die ganze Logik.
Besser ist, wenn man im Konstruktor gar nichts hat und "C#draw..." aufrufen würde.

Zu deinem Problem: Ich glaube du sollst ein Layout verwenden, für das was du machen willst gibt es Layouts, das ist verlorene Mühe sowas nachprogrammieren.
Schau dir das BorderLayout oder wenns sein muss das GridBagLayout an, Du kannst die Layouts auch verschachteln, damit erreichst du auf jeden Fall dein
Das NullLayout ist nicht zu empfehlen.
lg


Java:
package jscrollpanetest;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextField;


public class C extends JFrame {

    JTextField input = new JTextField();
    JButton nicklist = new JButton("Button2");
    JScrollPane scroll_nicklist = new JScrollPane();
    JButton output = new JButton("Button1");
    public C(){
        super("Test");
        setLayout(null);
        A.loggedin = true;
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(WindowEvent winEvt) {
                A.loggedin = false;
            }
        });
        addComponentListener(new ComponentListener(){
            public void componentHidden(ComponentEvent e){}
            public void componentResized(ComponentEvent e){
                int x = getWidth();
                int y = getHeight();
                if(x < 500){
                    x = 500;
                }
                if(y < 300){
                    y = 300;
                }
                setSize(x, y);
                x = getContentPane().getWidth();
                y = getContentPane().getHeight();
                input.setBounds(0, y-28, x, 28);
                output.setBounds(0, 0, x-300, y-28);
                output.repaint();
                output.updateUI();
                scroll_nicklist.setBounds(x-200, 0, 250, y-28);
                scroll_nicklist.repaint();
                scroll_nicklist.updateUI();
                System.out.println("RESIZE auf " + getWidth() + "x" + getHeight());

            }
            public void componentShown(ComponentEvent e){}
            public void componentMoved(ComponentEvent e){}

        });
        input.setFont(new Font("MS Sans Serif", 0, 13));
        add(input);
        //add(nicklist);
        add(output);
        scroll_nicklist.setVerticalScrollBarPolicy(20);
        scroll_nicklist.setHorizontalScrollBarPolicy(30);
        scroll_nicklist.setViewportView(nicklist);
        add(scroll_nicklist);
        nicklist.setPreferredSize(new Dimension(200, 493));
        setVisible(true);
        }

    public static void main(String[] args) {
        new C();
        }
    }

class A {
    static boolean loggedin = false;
    }
 

tagedieb

Top Contributor
Keine Ahnung,

Wieso ueberlaesst du das nicht dem LayoutManager? Damit gehts viel einfacher. Den ComponentListener kannst du dir auch sparen.

Java:
		// setLayout(null);
		input.setFont(new Font("MS Sans Serif", 0, 13));
		add(BorderLayout.SOUTH, input);
		add(BorderLayout.CENTER, output);
		scroll_nicklist.setVerticalScrollBarPolicy(20);
		scroll_nicklist.setHorizontalScrollBarPolicy(30);
		scroll_nicklist.setViewportView(nicklist);
		scroll_nicklist.setPreferredSize(new Dimension(200, 0));
		add(BorderLayout.EAST, scroll_nicklist);
		setMinimumSize(new Dimension(500, 300));
		setSize(500, 300);
		setVisible(true);
 

TKausL

Top Contributor
Hallo,

Danke ihr beiden, so geht es natürlich um einiges einfacher :D
Eine Frage noch: wie erreicht man, dass das fenster als Vollbild (also Maximiert) gestartet wird?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
L JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 10
G Frage zu JScrollPane Java Basics - Anfänger-Themen 12
M JScrollPane scrollt nicht Java Basics - Anfänger-Themen 2
D JScrollPane mit TextArea Java Basics - Anfänger-Themen 5
N JList + DefaultListModel + JScrollPane --> ensureIndexIsVisible funktioniert nicht immer Java Basics - Anfänger-Themen 1
T JScrollPane in den Code einbauen Java Basics - Anfänger-Themen 5
O JScrollPane zu gross für JTable Java Basics - Anfänger-Themen 2
A JScrollPane nicht sichtbar Java Basics - Anfänger-Themen 5
S JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 6
N jScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 13
L Jscrollpane nach zoomen anpassen Java Basics - Anfänger-Themen 20
C JScrollPane + JTextArea scrollt nicht Java Basics - Anfänger-Themen 2
T JScrollPane nicht scrollbar (mit KSKB!) Java Basics - Anfänger-Themen 4
T JScrollPane: Slider programmgesteuert verschieben? Java Basics - Anfänger-Themen 4
Kenan89 JScrollPane, aber kein Scrollbalken Java Basics - Anfänger-Themen 4
T JScrollPane funktioniert nicht Java Basics - Anfänger-Themen 7
D jScrollPane Problem Java Basics - Anfänger-Themen 16
JStickman JTree, JScrollPane, Liste mit graphischer Suchleiste - Dateimanager Java Basics - Anfänger-Themen 10
A Button das JScrollPane aktualisiert Java Basics - Anfänger-Themen 11
S JScrollPane verhält sich nicht so wie gedacht Java Basics - Anfänger-Themen 2
T JScrollPane ganz runter Scrollen Java Basics - Anfänger-Themen 4
Z Label verschwindet in JScrollPane Java Basics - Anfänger-Themen 7
N JScrollPane repaint(); geht nicht Java Basics - Anfänger-Themen 4
R JScrollPane in JTextArea benutzen Java Basics - Anfänger-Themen 10
L JPanel vergrößern bis JScrollPane nicht mehr zu sehen Java Basics - Anfänger-Themen 7
O JScrollPane , JScrollBar Java Basics - Anfänger-Themen 3
Z JScrollPane zeigt Zeit als Datum Java Basics - Anfänger-Themen 5
E Breite des Schiebers in JscrollPane verändern Java Basics - Anfänger-Themen 2
T JScrollPane soll rechts gescrollt gezeichnet werden Java Basics - Anfänger-Themen 5
P JScrollPane Java Basics - Anfänger-Themen 18
J JScrollPane, Regler-Problem Java Basics - Anfänger-Themen 3
J JScrollPane swing Java Basics - Anfänger-Themen 8
H JTable in JScrollPane: Scrollbar wird nicht angezeigt. Java Basics - Anfänger-Themen 2
H2SO3- JScrollPane will nicht scrollen Java Basics - Anfänger-Themen 3
_deleted Mehrere Panels untereinander im JScrollPane Java Basics - Anfänger-Themen 4
J JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 4
A JScrollPane aktualisiert nicht Java Basics - Anfänger-Themen 2
7 Java Swing: Wie JScrollPane zur JList hinzufügen? Java Basics - Anfänger-Themen 12
C jTabbedPane JScrollPane und jPanel Java Basics - Anfänger-Themen 3
S JScrollPane und JPanel Java Basics - Anfänger-Themen 2
J JScrollBar JScrollPane Java Basics - Anfänger-Themen 9
Q Anwendung eines JScrollPane Java Basics - Anfänger-Themen 2
M JScrollPane Java Basics - Anfänger-Themen 7
M Probleme mit JScrollPane Java Basics - Anfänger-Themen 5
G JScrollPane Java Basics - Anfänger-Themen 5
S JScrollPane: Scrollbalken werden nicht angezeigt Java Basics - Anfänger-Themen 4
P Brauche Hilfe für JPanel im JScrollPane und Abstände Java Basics - Anfänger-Themen 2
M VisualEditor, Jlist und JScrollPane Java Basics - Anfänger-Themen 9
M JScrollPane soll inhalt zentrieren Java Basics - Anfänger-Themen 3
C Automatischer Umbruch bei JScrollPane? Java Basics - Anfänger-Themen 5
G JScrollPane + JTable + Autoscroll uvm. Java Basics - Anfänger-Themen 5
N JScrollPane mit JTextArea Java Basics - Anfänger-Themen 4
I Autoscrolling im JScrollPane Java Basics - Anfänger-Themen 3
H JScrollPane -> Problem bei ScrollBar Java Basics - Anfänger-Themen 3
lin JScrollPane & OutOfMemoryError Java Basics - Anfänger-Themen 6
G JScrollPane in der Größe bestimmen Java Basics - Anfänger-Themen 11
R JScrollpane problem Java Basics - Anfänger-Themen 21
P JScrollPane an JTextArea anhängen Java Basics - Anfänger-Themen 3
C JScrollPane ohne Rahmen? Java Basics - Anfänger-Themen 2
M JScrollPane Java Basics - Anfänger-Themen 4
G Probleme mit JScrollPane Java Basics - Anfänger-Themen 3
M JScrollPane: Autoscroll Java Basics - Anfänger-Themen 14
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
missy72 Erste Schritte (nicht) Deterministischer endlicher Automat Java Basics - Anfänger-Themen 9
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18

Ähnliche Java Themen

Neue Themen


Oben