GridLayout

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Wie kann ich den Hintergrund meines Frames unter verwendung dieses Layouts verändern ?

Ihn durch ein Bild oder einfach durch eine Farbe ersetzen?
 
G

Guest

Gast
Der farbliche HInterground ist auch ein paar MilliSekunden da und verschwinedet in dem Moment, in dem das Layout geladen wird, warum bleibt dieser nicht dauerfhaft?
 
G

Guest

Gast
Code:
package teste;

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.*;
import javax.swing.*;


public class JButtonDemo
{
	
  static JLabel l2=new JLabel();
    
  public static void main( String args[] )
  {
    JFrame frame = new JFrame("Fenstername");
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    
    frame.setLayout(new GridLayout(2, 2));
    
    JLabel l= new JLabel();

    frame.setBackground(Color.green);     //  <------  Die Auswirkung verschwindet nach wenigen Millisekunden :(
    
    l.setText("<html>Hey

"+"Ho</html>");
    l.setHorizontalAlignment(JLabel.CENTER);
    l.setVerticalAlignment(JLabel.CENTER);
    l.setForeground(Color.red);   
    frame.add(l);
    
    l2.setText("HeyHey");
    l2.setHorizontalAlignment(JLabel.CENTER);
    l2.setVerticalAlignment(JLabel.CENTER);
    frame.add(l2);
    
    JButton b = new JButton( "LEFT" );    
    b.setHorizontalTextPosition(JLabel.CENTER);
    b.setVerticalTextPosition(JLabel.CENTER);
    frame.add(b);
    
    ActionListener al = new ActionListener() {
      public void actionPerformed( ActionEvent e ) {
         l2.setText("Blubb");
      }
    };

    JButton b2 = new JButton( "RIGHT" );    
    b2.setHorizontalTextPosition(JLabel.CENTER);
    b2.setVerticalTextPosition(JLabel.CENTER);
    frame.add(b2);
    
    ActionListener al2 = new ActionListener() {
      public void actionPerformed( ActionEvent e ) {
         System.exit(0);
      }
    };

   // frame.add(l2);
    
    b.addActionListener( al );
    b2.addActionListener( al2 );
    frame.setSize(500,500);
    frame.setVisible( true );
  }

}
 
G

Gast2

Gast
du solltest deine Labels und Buttons nicht direkt auf dein frame adden

EDIT
Code:
import java.awt.Color; 
import java.awt.GridLayout; 
import java.awt.event.*; 
import javax.swing.*; 


public class JButtonDemo 
{ 
    
  static JLabel l2=new JLabel(); 
    
  public static void main( String args[] ) 
  { 
    JFrame frame = new JFrame("Fenstername"); 
    JPanel panel =new JPanel();
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
    
    panel.setLayout(new GridLayout(2, 2)); 
    
    JLabel l= new JLabel(); 

    panel.setBackground(Color.green);     //  <------  Die Auswirkung verschwindet nach wenigen Millisekunden :( 
    
    l.setText("<html>Hey

"+"Ho</html>"); 
    l.setHorizontalAlignment(JLabel.CENTER); 
    l.setVerticalAlignment(JLabel.CENTER); 
    l.setForeground(Color.red);    
    panel.add(l); 
    
    l2.setText("HeyHey"); 
    l2.setHorizontalAlignment(JLabel.CENTER); 
    l2.setVerticalAlignment(JLabel.CENTER); 
    panel.add(l2); 
    
    JButton b = new JButton( "LEFT" );    
    b.setHorizontalTextPosition(JLabel.CENTER); 
    b.setVerticalTextPosition(JLabel.CENTER); 
    panel.add(b); 
    
    ActionListener al = new ActionListener() { 
      public void actionPerformed( ActionEvent e ) { 
         l2.setText("Blubb"); 
      } 
    }; 

    JButton b2 = new JButton( "RIGHT" );    
    b2.setHorizontalTextPosition(JLabel.CENTER); 
    b2.setVerticalTextPosition(JLabel.CENTER); 
    panel.add(b2); 
    
    ActionListener al2 = new ActionListener() { 
      public void actionPerformed( ActionEvent e ) { 
         System.exit(0); 
      } 
    }; 

   // frame.add(l2); 
    
    b.addActionListener( al ); 
    b2.addActionListener( al2 ); 
    frame.getContentPane().add(panel);
    frame.setSize(500,500); 
    frame.setVisible( true ); 
  } 

}
 
G

Gast

Gast
also ich habe jetzt mal alle Labels und Buttons rausgenommen, weil ich auch erst die Idee hatte, aber es funktioniert trotzdem nicht:

Code:
public class JButtonDemo extends JFrame
{
  private static JFrame frame = new JFrame("Fenstername");
  public static void main(String[] args) 
  {

    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    frame.setSize(500,500);
    frame.setLayout(new GridLayout(10,10));
    frame.setBackground(Color.green);     //  <------  Die Auswirkung verschwindet nach wenigen Millisekunden :(
    frame.setVisible( true );   
  }

}
 
G

Gast

Gast
ja du machst es mit einem Panel - es ging aber drum die Farbe in dem Frame zu setzen, dass es bei einem Panel geht weiß ich
 
G

Gast2

Gast
die 2te lösung ist du färbst dein contentPane ein


Code:
frame.getContentPane().setBackground(Color.green);
 
P

Patte

Gast
Meine Vorredner haben beide rechte:

Adde nicht direkt in das frame, sondern setze alles auf den ContentPane. Am einfachsten geht das mit einem Container:

Code:
JFrame frame = new JFrame("Fenstername");
Container pane = frame.getContentPane();
pane.setBackground(Color.green);
pane.setLayout(new GridLayout(2, 2));

pane.add(....);

usw.

Der JFrame stellt nur das Fenster dar, das sofort mit dem ContentPane gefüllt wird. Deshalb hat man das grün nur anfangs gesehen, wo der ContentPane noch nicht gezeichnet war oder man das Fenster vergrößert hat und swing das Fenster neu zeichnen musste.

Ich hoffe, dir etwas weitergeholfen zu haben, obwohl alles schon gesagt wurde ;)
 
G

Gast2

Gast
ab java 6 musst du nicht mehr alles auf das contentPane adden....(ich machs aber auch meistens =) )
aber wie gesagt wenn du mehrer Komponenten hast dann benutze lieber ein Panel...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S 3 Fragen, Verzeichnis, GridLayout psoitionieren, Werte für JSpinner Java Basics - Anfänger-Themen 2
L GridLayout, Beispiel? Java Basics - Anfänger-Themen 2
S GridLayout Java Basics - Anfänger-Themen 7
L GridLayout mit JLabel-Array füllen Java Basics - Anfänger-Themen 12
T Inhalt Gridlayout wird nicht angezeigt Java Basics - Anfänger-Themen 6
F Seitenrand beim GridLayout Java Basics - Anfänger-Themen 3
J GridLayout auf Panel zentrieren? Java Basics - Anfänger-Themen 2
D Objekte manuell in GridLayout einfügen Java Basics - Anfänger-Themen 4
B GridLayout - elemente mit Maus abfragen Java Basics - Anfänger-Themen 3
A Textfields + Labels in GridLayout(3,2) Java Basics - Anfänger-Themen 2
V GridLayout - Spaltenbreite variabel ? Java Basics - Anfänger-Themen 5
Developer_X Java GridLayout nicht ganz ausgereift Java Basics - Anfänger-Themen 6
Developer_X GridLayout->setPreferedSize(new Dimension(x,y,)); Java Basics - Anfänger-Themen 17
J Verständnisfrage GridLayout Java Basics - Anfänger-Themen 5
G GridLayout Allgemeine Fragen Java Basics - Anfänger-Themen 2
T GridLayout % Verändern? Java Basics - Anfänger-Themen 3
G Gridlayout Java Basics - Anfänger-Themen 4
Q Frage zu GridLayout Java Basics - Anfänger-Themen 5
O größe von panel mit gridlayout Java Basics - Anfänger-Themen 9
B Null-Layout oder GridLayout usw. Java Basics - Anfänger-Themen 5
V GridLayout anpassen? Java Basics - Anfänger-Themen 6
R GridLayout ignoriert setSize() u.ä. Angaben Java Basics - Anfänger-Themen 2
R leeres Feld im GridLayout (dummy Objekt erzeugen?) Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben