Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Huhu,

ich werd hier noch bekloppt... wie bekomme ich mein awt-Textfield zum aktualisieren????

TF.setText("Optimaler Weg: "+ Calc.optWegToString()+ " Dauer: " + Calc.optWegDauer());

TF.repaint();

geht nicht... steht immer das drin, was er bei allerersten Mal angezeigt hat

*grübel*

EDIT: mit Label gehts auch nicht!?!

Geschrieben

Jaraz: Bitte code Tags benutzen!


package com.mindobject.pojo;


import java.awt.Graphics;

import java.awt.Frame;

import java.awt.Button;

import java.awt.Label;

import java.awt.Color;


import java.awt.event.WindowEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;


import java.util.Iterator;

import java.util.Random;


/**

 * 

 * Klasse zum Zeichen der Umgebung

 * 

 * @version 1.0 vom 20.05.2005

 */


public class Draw extends Frame implements ActionListener {


	private Button drawknopf;


	private Button drawlikepicknopf;


	private Button calcknopf;


	private Label TF;


	/**

	 * Standard-Konstruktor zeichnet das Frame und die Buttons

	 */

	public Draw() {

		// Frame-Initialisierung

		super("Ikosaeder - Aufgabe");

		addWindowListener(new WindowAdapter() {

			public void windowClosing(WindowEvent evt) {

				System.exit(0);

			}

		});

		int frameWidth = 700;

		int frameHeight = 350;


		setSize(frameWidth, frameHeight);

		setResizable(false);

		setLayout(null);

		setVisible(true);

		setLocation(150, 150);


		Button drawknopf = new Button("Zufälliger Iko.");

		drawknopf.setBounds(580, 50, 100, 20);

		drawknopf.addActionListener(this);

		add(drawknopf);


		Button drawlikepicknopf = new Button("gegebener Iko.");

		drawlikepicknopf.setBounds(580, 80, 100, 20);

		drawlikepicknopf.addActionListener(this);

		add(drawlikepicknopf);


	}


	/**

	 * Methode zum Überschreiben von ActionListener Buttons werden mit Labels

	 * versehen und dann hier eingefügt

	 */

	public void actionPerformed(ActionEvent e) {

		Random generator2 = new Random();

		int zufall;

		int zufall2;


		Button obj = (Button) e.getSource();

		int z;

		// Button "Draw Ikosaeder"

		if (obj.getLabel().equals("Zufälliger Iko.")) {


			// calcknopf.setVisible(true);


			do {

				zufall = 1 + generator2.nextInt(20);

				zufall2 = 1 + generator2.nextInt(20);

			} while (zufall == zufall2);


			System.out.println(zufall + " " + zufall2);

			if (zufall + zufall2 >= 20) {

				zufall = Math.abs(zufall - zufall2);

			} else {

				zufall = zufall + zufall2;

			}

			Ikosaeder Iko = new Ikosaeder();

			Iko.zufIkosaeder(250);

			drawDreieck(Iko);

			faerbeDreieck(Iko.getDreieckn(zufall));


			// //Mal zum testen die Nachbarn färben

			// faerbeDreieck(Iko.getDreieck(Iko.getDreieck(zufall

			// ).getNachbar1()));

			// faerbeDreieck(Iko.getDreieck(Iko.getDreieck(zufall

			// ).getNachbar2()));

			// faerbeDreieck(Iko.getDreieck(Iko.getDreieck(zufall

			// ).getNachbar3()));

			Calculate Calc = new Calculate();


			Label TF = new Label();

			TF.setBounds(5, 300, 690, 35);

			TF.setBackground(Color.WHITE);

			// TF.setEditable(false);

			// TF.setFocusable(false);

			add(TF);


			Calc.berechne(Iko, Iko.getDreieckn(zufall));


			System.out.println("--->" + Calc.optWegToString());

			TF.setText("Optimaler Weg: " + Calc.optWegToString() + " Dauer: "

					+ Calc.optWegDauer());

			TF.repaint();

		}

		// Button "gegebener Iko."

		if (obj.getLabel().equals("gegebener Iko.")) {


			// calcknopf.setVisible(true);

			Ikosaeder Iko = new Ikosaeder();

			Iko.gegIkosaeder(250);

			drawDreieck(Iko);

			faerbeDreieck(Iko.getDreieckn(12));

			// //Mal zum testen die Nachbarn färben

			// faerbeDreieck(Iko.getDreieck(Iko.getDreieck(12).ge tNachbar1()));

			// faerbeDreieck(Iko.getDreieck(Iko.getDreieck(12).ge tNachbar2()));

			// faerbeDreieck(Iko.getDreieck(Iko.getDreieck(12).ge tNachbar3()));


			Calculate Calc = new Calculate();


			Label TF = new Label();

			TF.setBounds(5, 300, 690, 35);

			TF.setBackground(Color.WHITE);

			// TF.setEditable(false);

			// TF.setFocusable(false);

			add(TF);


			Calc.berechne(Iko, Iko.getDreieckn(12));


			System.out.println("--->" + Calc.optWegToString());


			TF.setText("Optimaler Weg: " + Calc.optWegToString() + " Dauer: "

					+ Calc.optWegDauer());

			TF.repaint();

		}


	}


	/**

	 * Zeichnet alle Dreiecke des Ikosaeders

	 * 

	 * @param iko

	 *            Es wird ein Ikosaeder übergeben

	 */

	private void drawDreieck(Ikosaeder iko) {

		Iterator it = iko.getDreieckSet().iterator();

		this.getGraphics().clearRect(0, 0, 1000, 1000);

		while (it.hasNext()) {

			Dreieck d = (Dreieck) it.next();

			this.getGraphics().translate(50, 50);

			d.zeichne(this.getGraphics());

		}

	}


	/**

	 * Unterlegt das Startfeld farbig

	 * 

	 * @param iko

	 *            Ein Ikosaeder

	 * @param nummer

	 *            Die Nummer des zu färbenden Dreiecks

	 */

	private void faerbeDreieck(Dreieck Drei) {


		this.getGraphics().translate(50, 50);

		Drei.fuelle(this.getGraphics());


	}


	/*

	 * public static void main(String[] args) {

	 * 

	 * Ikosaeder Iko = new Ikosaeder(150); Draw draw = new Draw(); }

	 */

}

Geschrieben

Zunächst mal erzeugst du in jedem actionPerformed ein neues Label...

Erzeuge das label nur einmal im Konstruktor und setze in der actionPerforemd nur den text neu auf das Label...

Geschrieben

Warum das?

Mach es so:


class XYZ extends JPanel implements ActionListener {
private JLabel TF;

public XYZ() {
TF = new JLabel("test");
this.add(TF);
}

public void actionPerformed(ActionEvent e) {
TF.setText("TEST");
}
}
[/PHP]

Da darf es keine NullPointerException geben.

Geschrieben


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

public class Test extends JFrame implements ActionListener{

private JButton press;
private JLabel text;
private int count = 1;

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

public Test() {
super("test");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
press = new JButton("Drück mich");
press.addActionListener(this);
text = new JLabel(new Integer(count).toString());

this.getContentPane().add(text,BorderLayout.CENTER);
this.getContentPane().add(press,BorderLayout.SOUTH);
this.pack();
this.setVisible(true);
}

public void actionPerformed(ActionEvent arg0) {
text.setText(new Integer(++count).toString());
}
}
[/PHP]

Also dies funzt bei mir ohne Probleme... Sicher, dass die NullPointerException vom Label kommt?

Geschrieben

Mach mal vor diesem Statement ein System.out.println(TF2.getText()) rein. Wenn das Label wirklich nicht mehr vorhanden wäre dürfte dort schon eine NullpointerException auftreten.

Geschrieben

hi,

ich kann nicht so richtig erkennen woher die nullpointer exception kommt, aber vielleicht stellst du dein tf erstmal von awt nach swing um.

ich glaube zwar nicht das es daran liegt, aber wer weiss...

ansonsten kannst du ja die veränderungen in einer getter-setter Klasse speichern und den String der im textfeld erscheinen soll dort auslesen und ins

tf setzten.

ich gucks mir nochmal an, aber mehr fällt mir jetzt nicht ein... :confused:

ps.: wenn du das gui sowieso im konstruktor baust, dann bau doch dort auch das Label ein...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...