setSize von Panelklasse aufrufen

Status
Nicht offen für weitere Antworten.

joschika77

Bekanntes Mitglied
Hallo!

Ich habe ein Frame welches eine Klasse ... extends Panel aufruft.
Mein Frame habe ich eine Größe gegeben.
Ich möchte nun meine Framegröße aus der ... extends Panel Klasse ändern.
Jetzt ändert er aber nur die Panelgröße.

Wie kann ich das erreichen?

Gruß Ronn
 
B

Beni

Gast
Du suchst mit Component.getParent solange, bis du das Frame gefunden hast (Die Component ohne Parent).
Du kannst auch im Panel das Frame speichern, eine Methode "setFrame" schreiben, und beim konstruieren deiner GUI das Frame übergeben.
 
B

Beni

Gast
Mit dem Parent (da gibt sogar eine noch einfachere Lösung)
Code:
/*
JFrame test = new JFrame();
TPanel panel = new TPanel();
test.getContentPane().add( panel );
test.setBounds( 20, 20, 100, 100 );
test.setVisible( true );
	  
Thread.sleep( 1000 );
panel.resizeFrame( 50, 50 );
*/

class TPanel extends JPanel{
	public void resizeFrame( int w, int h ){
		Component root = SwingUtilities.getRoot( this );
		root.setSize( w, h );
	}
}

Oder mit dem setFrame
Code:
/*
JFrame test = new JFrame();
	  
TPanel panel = new TPanel();
panel.setFrame( test );
	  
test.getContentPane().add( panel );
test.setBounds( 20, 20, 100, 100 );
test.setVisible( true );
	  
Thread.sleep( 1000 );
panel.resizeFrame( 50, 50 );
*/

class TPanel extends JPanel{
	private Frame frame;
	
	public void setFrame( Frame frame ){
		this.frame = frame;
	}
	public void resizeFrame( int w, int h ){
		frame.setSize( w, h );
	}
}
 

joschika77

Bekanntes Mitglied
Hallo!

Ich habe soweit alles eingebunden.
Er übergibt das auch alles, aber das Frame ändert sich nicht.

In der Frame Klasse
Code:
		this.getContentPane().setLayout(null);
				
		//Instanz Panel
		csp = new ChatServerPanel(counter ,portadresse);
		csp.setBounds(0,0,300,500);
		
		JFrame test = new JFrame(); 
		csp.setFrame( test );
		csp.resizeFrame( 300, 310 );
		
		this.getContentPane().add(csp);
		validate();

In der Panel Klasse
Code:
                      private Frame frame;
	  public void setFrame( Frame frame )
	  { 
		 this.frame = frame; 
	  } 
	  public void resizeFrame( int w, int h )
	  { 
		 frame.setSize( w, h ); 
	  }
Nun wollte ich wenn ich auf ein Button klicke das Frame ändern und habe
an einer anderen Stelle das aufrufen.
Code:
	frame.setSize( 300, 110 );
	System.out.println(frame);
Leider passiert nichts.Was fehlt?

MfG Ronn
 
B

Beni

Gast
? Sieht ja soweit richtig aus... ???:L
Frames haben eine Minimalbreite (und -Höhe), versuch es mal mit grösseren Zahlen.
Überprüf, ob die Methode tatsächlich aufgerufen wird (ActionListener gesetzt?).
 

joschika77

Bekanntes Mitglied
Action Listener ist gesetzt.

Code:
public void actionPerformed(ActionEvent e)
{
    if(e.getActionCommand().equalsIgnoreCase("Chat öffnen"))
    {
				
        frame.setSize( 600, 800 );
        System.out.println("1"+frame);
        bShowChat.setLabel("Chat schließen");	
        frame.validate();
    }
			
    if(e.getActionCommand().equalsIgnoreCase("Chat schließen"))
    {		
        frame.setSize( 600, 610 );
        System.out.println("2"+frame);
        bShowChat.setLabel("Chat öffnen");
        frame.validate();
    }
ER wirft mir das aus:

1javax.swing.JFrame[frame0,0,0,600x800,invalid,hidden,layout=java.awt.BorderLayout,title=,resizable,normal,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=null,alignmentY=null,border=,flags=385,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]

2javax.swing.JFrame[frame0,0,0,600x610,invalid,hidden,layout=java.awt.BorderLayout,title=,resizable,normal,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=null,alignmentY=null,border=,flags=385,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
Er ändert.Soviel ist sicher.Ich habe es auch schon mit repaint und/oder validate probiert.
Keine Reaktion.Weist du noch was?

MfG Ronn
 
B

Beni

Gast
Langsam gehen mir die Ideen aus ???:L

Das Frame ist resizable? ( JFrame.setResizable( true ) )
Überschreibe die Methode reshape( int x, int y, int w, int h); im JFrame, und gib jedesmal die Argumente aus, wenn sie aufgerufen wird. Vielleicht wird das Frame wieder auf eine andere Grösse gesetzt (zugegeben, mehr ein Hoffnungsmacher als was anderes).

Seltsam... :? Beni
 

lhein

Top Contributor
Folgendes:

Code:
//Instanz Panel
csp = new ChatServerPanel(counter ,portadresse);
csp.setBounds(0,0,300,500);
	
JFrame test = new JFrame(); 
csp.setFrame( test );
csp.resizeFrame( 300, 310 );
		
this.getContentPane().add(csp);
validate();

weiss nicht ob du es einfach der einfachheit halber weggelassen hast, aber:

du gibts deinem frisch instanziierten Panel ein null-layout.
dann setzt du eine größe...alles ok bisher.
nun erzeugst du ein JFrame und nun kommt in meinen augen dein fehler.

was machst du mit dem Frame? Du hast es erzeugt aber das wars dann auch.

Wo addest Du das Panel in das Frame?

Ich denke das ist auch der Grund, warum das Frame BorderLayout hat.

Richtig wäre:

Code:
public class myFrame extends JFrame
{
   BorderLayout borderLayout = new BorderLayout();
   ChatServerPanel csp;

   public myFrame(String s_frameTitle)
   {
       super(s_frameTitle);
       try
       {
	  jbInit();
       }
       catch (Exception ex)
       {
	  ex.printStackTrace();
       }
   }

   private void jbInit()
   {
       this.getContentPane().setLayout(borderLayout);
       csp = new ChatServerPanel(counter ,portadresse);
       csp.setBounds(0,0,300,500);
       csp.setFrame(this);
       csp.resizeFrame(300, 310);     // oder einfach this.resize

       this.getContentPane.add(csp, BorderLayout.CENTER);
   }
}

Gruß
LR
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P LayoutManager TextField.setSize(); in einem FlowLayout AWT, Swing, JavaFX & SWT 3
T LayoutManager GridLayout panel.setSize funktioniert nicht AWT, Swing, JavaFX & SWT 1
A trotz setSize keine breite AWT, Swing, JavaFX & SWT 4
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 7
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 2
H AWT setSize()/setBounds() und pack() kombinieren!? AWT, Swing, JavaFX & SWT 3
B setSize() funktioniert nicht AWT, Swing, JavaFX & SWT 2
T AWT - setSize(..) AWT, Swing, JavaFX & SWT 18
ABstraCT JOptionPane setSize ? AWT, Swing, JavaFX & SWT 6
B setSize() AWT, Swing, JavaFX & SWT 2
T JFrame#setSize trotz maximiert AWT, Swing, JavaFX & SWT 4
P Ignoriert mein setSize()? AWT, Swing, JavaFX & SWT 2
B JFrame flackern durch setSize() AWT, Swing, JavaFX & SWT 8
T setSize() funktioniert nicht AWT, Swing, JavaFX & SWT 5
G tree.setSize tut nicht AWT, Swing, JavaFX & SWT 5
K setSize und setLocation geht nicht AWT, Swing, JavaFX & SWT 8
M Layout / setSize Problem AWT, Swing, JavaFX & SWT 15
A setSize nötig um Elemente sichtbar zu machen? AWT, Swing, JavaFX & SWT 3
T setSize() fertig AWT, Swing, JavaFX & SWT 5
T setSize-Problem in FileDialog AWT, Swing, JavaFX & SWT 4
W JFrame setSize() und setBounds() AWT, Swing, JavaFX & SWT 2
D JSPinner Größe verändern - setSize() funktioniert nicht AWT, Swing, JavaFX & SWT 7
R nach setSize() wird JLabel nicht dargestellt AWT, Swing, JavaFX & SWT 3
Y JTree setSize() AWT, Swing, JavaFX & SWT 5
A JTabbedPane setSize funktioniert nicht ! AWT, Swing, JavaFX & SWT 4
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
W Aufrufen einer bestimmten Scene mit if-Bedingung AWT, Swing, JavaFX & SWT 4
L JFrame Gui in anderer Methode aufrufen AWT, Swing, JavaFX & SWT 0
S Swing Variable in Actionlistener aufrufen AWT, Swing, JavaFX & SWT 10
O Kann kei neues Panel zum zeichnen aufrufen... AWT, Swing, JavaFX & SWT 4
I Zweite Scene aufrufen AWT, Swing, JavaFX & SWT 4
F FXML Datei aus dem SceneBuilder in Eclipse aufrufen AWT, Swing, JavaFX & SWT 1
R Kann JLabel in ActionListener nicht aufrufen AWT, Swing, JavaFX & SWT 4
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
E Swing Dialog modal aufrufen AWT, Swing, JavaFX & SWT 2
emma_louisa JavaFX Werte beim Aufrufen des Fensters übernehmen (SceneBuilder) AWT, Swing, JavaFX & SWT 3
K über Button andere Java Klasse aufrufen AWT, Swing, JavaFX & SWT 15
Java_RY AWT Frame in eine eigene klasse auslagern und aufrufen AWT, Swing, JavaFX & SWT 6
Ghostman1711 GUI Java von Klasse mit Application Windows anderes Application Window aufrufen AWT, Swing, JavaFX & SWT 6
T Swing Methode in Listener aufrufen AWT, Swing, JavaFX & SWT 3
M JavaFX Methode nach initialize() aufrufen AWT, Swing, JavaFX & SWT 6
A paint-Methode aufrufen AWT, Swing, JavaFX & SWT 13
stylegangsta MouseEvents aus JButton aufrufen AWT, Swing, JavaFX & SWT 3
B Swing GUI in einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 4
A Swing Externe Klassen aufrufen und in einem bereits vorhandenen Container einfügen AWT, Swing, JavaFX & SWT 0
M Swing JtextField Panel in ander Panel aufrufen AWT, Swing, JavaFX & SWT 0
S ActionListener Klasse aufrufen AWT, Swing, JavaFX & SWT 4
K JavaFX Fenster aufrufen über Menü AWT, Swing, JavaFX & SWT 1
G Fragment aufrufen AWT, Swing, JavaFX & SWT 1
D SWT SWT Elemente aus anderen Klassen aufrufen - Invalid thread access AWT, Swing, JavaFX & SWT 6
M Repaint mittels Button richtig aufrufen klappt nicht AWT, Swing, JavaFX & SWT 1
H JavaFx - Als exe aufrufen AWT, Swing, JavaFX & SWT 4
vodkaz Graphics aufrufen AWT, Swing, JavaFX & SWT 4
M Gui in einer anderen Java Klasse aufrufen AWT, Swing, JavaFX & SWT 1
I Paint-Methode von nicht statischen Objekten aufrufen AWT, Swing, JavaFX & SWT 3
S Swing Mit einem Link eine Methode aufrufen AWT, Swing, JavaFX & SWT 2
A Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen AWT, Swing, JavaFX & SWT 3
C Swing Durch Inhaltsänderung eines JTextfields eine Funktion aufrufen AWT, Swing, JavaFX & SWT 5
D Nächste GUI in einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 7
J Swing Nach SwingWorker Funktion aus der GUI Klasse aufrufen AWT, Swing, JavaFX & SWT 5
G JPanel aufrufen in andere Klasse AWT, Swing, JavaFX & SWT 2
G Window aus anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 4
W Funktion per Tastendruck aufrufen. AWT, Swing, JavaFX & SWT 10
A Applet Applet vom Web-Server aus aufrufen AWT, Swing, JavaFX & SWT 11
Jackii 2 Frames nacheinander aufrufen AWT, Swing, JavaFX & SWT 6
J Swing JTable - nach Sortieren andere Methode aufrufen AWT, Swing, JavaFX & SWT 2
L Graphics Objekt - aus anderer Klasse aufrufen / übergeben AWT, Swing, JavaFX & SWT 5
K beim Schließen des JFrames, Methode aufrufen AWT, Swing, JavaFX & SWT 3
A Applet main class aus anderer main class aufrufen AWT, Swing, JavaFX & SWT 15
N Button on click eine andere Klasse aufrufen... AWT, Swing, JavaFX & SWT 2
C Grafik von main aus aufrufen AWT, Swing, JavaFX & SWT 13
J SWT Globale Refresh-Aktion programmtechnisch aufrufen AWT, Swing, JavaFX & SWT 6
Zettelkasten repaint() von anderen Klassen aufrufen AWT, Swing, JavaFX & SWT 4
R paintComponent direkt bei actionPerformed aufrufen AWT, Swing, JavaFX & SWT 2
3 JFrame in Klassen aufrufen AWT, Swing, JavaFX & SWT 2
F Swing JFrame Methode beim Schließen aufrufen AWT, Swing, JavaFX & SWT 5
H applet Methode aus abstrakter Klasse aufrufen AWT, Swing, JavaFX & SWT 12
S Swing Werte einer Jcheckbox aus eine Klasse A in eine Klasse B aufrufen AWT, Swing, JavaFX & SWT 6
Weiti JOptionPane aus einer von JPanel abgeleiteten Klasse aufrufen AWT, Swing, JavaFX & SWT 3
C Checkbox in Liste deaktivieren und paintComponent explizit aufrufen AWT, Swing, JavaFX & SWT 12
L AWT Paint(g) im Listener aufrufen AWT, Swing, JavaFX & SWT 2
M Swing Methode in einem Fenster aus einem anderen Fenster aufrufen AWT, Swing, JavaFX & SWT 4
X Prozess mit Runtime.getRuntime in SwingWorker aufrufen AWT, Swing, JavaFX & SWT 6
H Sub-Dialog von modalem JDialog aus aufrufen - geht das? AWT, Swing, JavaFX & SWT 6
N AWT Graphics2D mehrmals aufrufen AWT, Swing, JavaFX & SWT 5
M Main Frame schließen und neue Klasse aufrufen? AWT, Swing, JavaFX & SWT 2
I AWT paint() in MouseEvent aufrufen klappt nicht AWT, Swing, JavaFX & SWT 8
Q Swing Panel aus anderen Frame aufrufen AWT, Swing, JavaFX & SWT 2
A Aufrufen eigener Klasse AWT, Swing, JavaFX & SWT 8
M Swing JTextFeld Wert in anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 13
C Einen JDialog aus einem JDialog aufrufen AWT, Swing, JavaFX & SWT 3
D Paint() Methode aus einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 6
M Button Methode aufrufen AWT, Swing, JavaFX & SWT 3
M Event händisch aufrufen AWT, Swing, JavaFX & SWT 2
S methode aufrufen beim Schließen von GUI AWT, Swing, JavaFX & SWT 7
K JDialog - Methode nach setVisible() aufrufen AWT, Swing, JavaFX & SWT 4
spacegaier Fehler beim Aufrufen von Dialog aus ActionListener AWT, Swing, JavaFX & SWT 12
R Innerhalb der GUI Klasse meine neue Klasse aufrufen AWT, Swing, JavaFX & SWT 1
E Anfänger-JPanel aus Menü aufrufen AWT, Swing, JavaFX & SWT 4
G paint() Methode aus anderer klasse aufrufen? AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben