Hallo Leute,
in einem Schulfach sollen wir in Java ein Frame mit einem Lauflicht bestehend aus einem TextField-Array schreiben. Das funktioniert bisher auch ganz gut, in den Komponenten werden die Textfelder mit einer for-Schleife bereits auf das Frame "gemalt"
Wird auf einen Button gedrückt (button1_ActionPerformed), dann soll mit einer for-Schleife in einem bestimmten Intervall jedes TextField rot gefärbt werden.
Problem: wie übergebe ich das Lauflicht-Array von den Komponenten an button1_ActionPerformed? Ihr würdet mir einen großen Gefallen tun, wenn ihr mir helfen würdet!!
Java
- import java.awt.*;
- import java.awt.event.*;
- /**
- *
- * Beschreibung
- *
- * @version 1.0 vom 03.01.2015
- * @author
- */
- public class Lauflicht extends Frame {
- // Anfang Attribute
- private Panel panel1 = new Panel(null);
- private Label label1 = new Label();
- private Label label2 = new Label();
- private NumberField numberField1 = new NumberField();
- private Button button1 = new Button();
- // Ende Attribute
- public Lauflicht(String title) {
- // Frame-Initialisierung
- super(title);
- addWindowListener(new WindowAdapter() {
- public void windowClosing(WindowEvent evt) { dispose(); }
- });
- int frameWidth = 209;
- int frameHeight = 272;
- setSize(frameWidth, frameHeight);
- Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
- int x = (d.width - getSize().width) / 2;
- int y = (d.height - getSize().height) / 2;
- setLocation(x, y);
- setResizable(false);
- Panel cp = new Panel(null);
- add(cp);
- // Anfang Komponenten
- TextField[] lauflicht = new TextField [64];
- int ly = 20;
- int lx = 20;
- int spalte = 1;
- for (int i = 0; i < 64; i++) {
- switch (i) {
- case 8: ly = ly+20;
- lx = 160;
- spalte++;
- break;
- case 16: ly = ly+20;
- lx = 20;
- spalte++;
- break;
- case 24: ly = ly+20;
- lx = 160;
- spalte++;
- break;
- case 32: ly = ly+20;
- lx = 20;
- spalte++;
- break;
- case 40: ly = ly+20;
- lx = 160;
- spalte++;
- break;
- case 48: ly = ly+20;
- lx = 20;
- spalte++;
- break;
- case 56: ly = ly+20;
- lx = 160;
- spalte++;
- break;
- }
- lauflicht[i] = new TextField();
- lauflicht[i].setBounds(lx,ly,20,20);
- if (spalte % 2 != 0) {
- lx = lx + 20;
- } else {
- lx = lx - 20;
- } // end of if-else
- cp.add(lauflicht[i]);
- }
- panel1.setBounds(8, 8, 185, 185);
- panel1.setBackground(Color.YELLOW);
- cp.add(panel1);
- label1.setBounds(8, 200, 43, 33);
- label1.setText("Delay");
- cp.add(label1);
- label2.setBounds(112, 200, 27, 33);
- label2.setText("ms");
- label2.setAlignment(Label.CENTER);
- cp.add(label2);
- numberField1.setBounds(56, 200, 49, 33);
- numberField1.setText("");
- numberField1.setFont(new Font("Arial Narrow", Font.PLAIN, 14));
- cp.add(numberField1);
- button1.setBounds(144, 200, 49, 33);
- button1.setLabel("Start");
- button1.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
- button1_ActionPerformed(evt);
- }
- });
- cp.add(button1);
- // Ende Komponenten
- setVisible(true);
- } // end of public Lauflicht
- // Anfang Methoden
- public void delay (int msec) {
- try {
- Thread.sleep(msec);
- } catch(Exception e) {
- } // end of try
- }
- public void button1_ActionPerformed(ActionEvent evt) {
- int msec = numberField1.getInt();
- for (int j = 0; j <64; j++) {
- } // end of for
- } // end of button1_ActionPerformed
- // Ende Methoden
- public static void main(String[] args) {
- new Lauflicht("Lauflicht");
- } // end of main
- } // end of class Lauflicht