Hallo Alle,
habe ein kleines Programm geschrieben, welches ein 500 x 500 Fenster in 50 x 50 JLabels aufteilt, welche alle eine zufällige Farbe haben. Das wird über einen Timer alle halbe Sekunde neu gemacht. Ist als Testprogramm ohne konkreten Nutzen gedacht. (Der Weg ist das Ziel)
Ich hätte erwartet (und auch gewünscht), dass es etwa so ist, als ob ich eine neue Seite in einem Block aufschlage : zack, neue Farben da.
Der Bildaufbau hat irgendwie Bildschirmschoner - Charakter (er baut sich wuselnd und bewegend auf irgendwie). Ich hätte gerne, dass es schneller geht, sehe aber momentan nicht wie das gehen soll.
Bei 128 x 128 Felder etwa dauert der aufbau schon fast 3 Sekunden?
habe ein kleines Programm geschrieben, welches ein 500 x 500 Fenster in 50 x 50 JLabels aufteilt, welche alle eine zufällige Farbe haben. Das wird über einen Timer alle halbe Sekunde neu gemacht. Ist als Testprogramm ohne konkreten Nutzen gedacht. (Der Weg ist das Ziel)
Ich hätte erwartet (und auch gewünscht), dass es etwa so ist, als ob ich eine neue Seite in einem Block aufschlage : zack, neue Farben da.
Der Bildaufbau hat irgendwie Bildschirmschoner - Charakter (er baut sich wuselnd und bewegend auf irgendwie). Ich hätte gerne, dass es schneller geht, sehe aber momentan nicht wie das gehen soll.
Bei 128 x 128 Felder etwa dauert der aufbau schon fast 3 Sekunden?
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
public class simpleGui {
private int size = 50;
private JFrame frame = new JFrame("Titel hier!");
private JPanel panel1 = new JPanel();
private GridLayout layout = new GridLayout(size,size);
simpleGui(){
initGui();
}
public void initGui(){
System.out.println("Initialisiere Gui...");
frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
panel1.setLayout(layout);
ActionListener action = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
panel1.removeAll();
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
panel1.add(new Brick(""), null);
frame.add(panel1, BorderLayout.CENTER);
frame.setVisible(true);
}
};
frame.add(panel1, BorderLayout.CENTER);
frame.setVisible(true);
Timer t = new Timer(500,action);
t.setRepeats(true);
t.start();
}
public static void main(String[] args) {
simpleGui sg1 = new simpleGui();
}
class Brick extends JLabel{
//random color
private Color color = new Color((int) (Math.random()*255),(int) (Math.random()*255),(int) (Math.random()*255));
public Brick(String s){
super(s);
this.setBackground(color);
this.setOpaque(true);
// System.out.println("i am " + color.toString());
}
}
}