Swing Text eines JButton mit String definieren? Reihenfolge?

comiplo

Mitglied
Hallo,

Ich versuche den Text eines JButton mit einem String zu definieren. Jedoch ist der Text des JButtons leer. Mein Code:

Java:
package vaja;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;


public class bildershow extends JFrame{
	
	public static String texton;
	public static JButton kl;
	public static boolean wann = false;
	public static String bild = "C:/bild.jpg"; //static war eclipse ...
	public bildershow(){
		super("Animation");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        getContentPane().add(new JLabel(new ImageIcon(bild)));
        kl = new JButton(texton);

        getContentPane().add(kl, BorderLayout.SOUTH);

        
        pack();
        setVisible(true);
        
        }


	/**
	 * @param args
	 */

	public static void main(String[] args) {

		
		 JFrame rahmen = new JFrame("Animation");
		 rahmen.setIconImage((new ImageIcon("F:/imageicon.jpg")).getImage());
         rahmen.setSize(400, 300);
         rahmen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         JPanel platte = new JPanel();
         final JLabel knopf1 = new JLabel("");
         knopf1.setVisible(true);
         platte.add(knopf1);
         rahmen.setContentPane(platte);
         rahmen.setVisible(true);
         
         
         
			final Timer t = new Timer();
			t.schedule(new TimerTask() {
				@Override
				public void run() {
					new bildershow();
					
					if(wann == true) {
						kl.addActionListener (new ActionListener()
				        {
				        	public void actionPerformed (ActionEvent x)
				        	{
				        		System.out.println("hallo");
				        	}
				        });
						}
                    bild = "C:/bild2.jpg";
					t.cancel();
				}
			}, 2000);
			
			String Zeile=null;
		      BufferedReader Datei = null;
		      String text = "";
		      String texton = null;
		      try
		      {
		      Datei = new BufferedReader (new FileReader("C:/text.txt"));
		      

		        boolean Dateiende = false;
		        while (!Dateiende)  // while (Datei.ready())
		        {
		          Zeile = Datei.readLine();
		          if (Zeile == null) Dateiende = true;
		          text += Zeile;
		          
		          texton = text.replaceAll("null", "");
		          
		        }
		        }
		      catch (IOException x)
		      {
		        JOptionPane.showMessageDialog (null, "Kann Daten nicht laden!");
		      } finally {
		          try {
		            Datei.close();
		          } catch (IOException ioe) { /** ignore */ }
		      }
		      System.out.println(texton);
			
			final Timer tt = new Timer();
			tt.schedule(new TimerTask() {
				public void run() {
			        
					new bildershow();

					wann = true;
					if(wann == true) {
					kl.addActionListener (new ActionListener()
			        {
			        	public void actionPerformed (ActionEvent x)
			        	{
			        		bild = "C:/bild2.jpg";
			        		new bildershow();
			        	}
			        });
					}
					
				}
			}, 4000); }}
texton wird ja bereits mit public static String texton; definiert. Wenn ich String texton = "ggg" schreibe ist der Text des Buttons bei dem Test auch ggg. D.h. es stimmt nicht wie/wann ich texton als Text definiere. Kann mir jemand sagen wie das richtig lautet?

MfG,
comiplo
 

Michael...

Top Contributor
So ganz verstanden habe ich es zwar nicht.
Aber Du hast zwei Variablen mit Namen texton in Deinem Code - das ist Dir bewusst?

Ansonsten sind String Objekte immutable - einmal definiert behalten sie Ihren "Wert".

Zeile 3 bewirkt nicht, dass auf dem Button "CHANGE" angezeigt wird, da in Zeile 3 ein neues String Objekt erzeugt und der Referenzvariablen text zugewiesen wird. War das die Frage?
Java:
String text = "INIT";
JButton button = new JButton(text);
text = "CHANGE";
 

comiplo

Mitglied
Die Frage war wie weiße ich den Text eines Strings einem JButton zu und wann.

Aber nach dem einlesen der Datei ist ja der Text der Textdatei in dem String, oder?

Könntest du mit dem Beispiel erläutern was genau du meinst?

MfG

EDIT:
Du hattest recht. texton wurde 2 mal definiert. Einmal mit null. Mit public wird es ja nur erstellt, aber mit Zeile 87 wird der Wert auf null gesetzt. Zeile entfernt - Funzt. Thx, Michael :)
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Du hattest recht. texton wurde 2 mal definiert. Einmal mit null. Mit public wird es ja nur erstellt, aber mit Zeile 87 wird der Wert auf null gesetzt. Zeile entfernt - Funzt. Thx, Michael :)
Genau genommen wird in Zeile 87 eine neue lokale Variable definiert, die in der Schleife befüllt wird. Durch das Löschen der Zeile gibt's diese lokale Variable nicht und in der Schleife wird die nun die statische Klassenvariable befüllt. Mit dem null setzen hat das nichts zu tun - könnte man, wenn man wollte drin lassen.
 

comiplo

Mitglied
Ja, es sollte doch die statische Variable füllen, oder? Wenn ich die Zeile wieder reinschreibe, also die lokale Variable definiere, geht es nicht. Liegt's nicht daran, dass ich texton 2 mal definiert hab?

MfG
 

Michael...

Top Contributor
Ja daran liegt's.
Meinte nur, dass man die Variable null setzen darf (macht nicht unbedingt Sinn), nur darf man keine neue mit dem selben Namen erzeugen. Also:
Java:
texton = null;
statt
Java:
String texton = null;
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
C SWT Curser an den Anfang eines Text Objektes setzen AWT, Swing, JavaFX & SWT 12
T SWT - Text eines TreeItems nachträglich ändern AWT, Swing, JavaFX & SWT 6
G Text eines noch aktiv editierten Textfeldes lesen AWT, Swing, JavaFX & SWT 2
G Text eines Labels verändern? AWT, Swing, JavaFX & SWT 4
S Text eines JButtons vertikal schreiben AWT, Swing, JavaFX & SWT 5
L-ectron-X Den Text eines JButtons unter das Icon setzen? AWT, Swing, JavaFX & SWT 2
L Größe eines JLabels an enthaltenen Text anpassen AWT, Swing, JavaFX & SWT 2
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
C JToggleButton disabled Text Color AWT, Swing, JavaFX & SWT 11
H JavaFX Label.Text mit bind an DoubleProperty binden AWT, Swing, JavaFX & SWT 3
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
FrittenFritze Text in Flying Saucer selectierbar machen AWT, Swing, JavaFX & SWT 0
Mojo7310 Ändern von Text in JLabel mit einem Button AWT, Swing, JavaFX & SWT 11
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
H JavaFX Gedrehter Text auf Canvas (Positionierung) AWT, Swing, JavaFX & SWT 6
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
I Rich Text drucken AWT, Swing, JavaFX & SWT 0
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
R Text vom Jlabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
N Promt Text der Combobox AWT, Swing, JavaFX & SWT 0
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
N In Textdatei Text anfügen per GUI AWT, Swing, JavaFX & SWT 3
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
R Swing JTextField nicht-kopierbarer Text AWT, Swing, JavaFX & SWT 1
S Text-Info in der Taskbar anzeigen AWT, Swing, JavaFX & SWT 15
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
S Swing JLabel Text mit der Zeit ändern AWT, Swing, JavaFX & SWT 1
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
C JCheckBox disabled text color AWT, Swing, JavaFX & SWT 9
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
CptK Swing Button: ImageIcon unter den Text AWT, Swing, JavaFX & SWT 4
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
K JavaFX TextInputDialog Button Text ändern AWT, Swing, JavaFX & SWT 1
S 2D-Grafik affine Transformation für Text-Shape AWT, Swing, JavaFX & SWT 0
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
C Swing Spinner als TableCellEditor - Text zu klein AWT, Swing, JavaFX & SWT 2
H JavaFX - Button und Text - Falsche Darstellung AWT, Swing, JavaFX & SWT 3
zhermann FX Label text wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 12
I JavaFX formatierter Text in PDF speichern AWT, Swing, JavaFX & SWT 4
T JavaFX Text des ProgressIndicators ändern AWT, Swing, JavaFX & SWT 2
E Swing Text verschwindet AWT, Swing, JavaFX & SWT 1
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
G Rectangle Breite richtet such an die Breite vom Text AWT, Swing, JavaFX & SWT 1
Sanni94 JavaFX Kann man eine Grafik in einen Text einbinden? AWT, Swing, JavaFX & SWT 2
S JTextArea Text nach oben wandern lassen AWT, Swing, JavaFX & SWT 7
F Icons neben Text in Listview setzen AWT, Swing, JavaFX & SWT 2
K Rich Text FX von TomasMikula AWT, Swing, JavaFX & SWT 0
M Text in einem Label fett setzen AWT, Swing, JavaFX & SWT 4
S JAVAFX HTMLEditor wrap text AWT, Swing, JavaFX & SWT 1
J JavaFX Translation Text/Label AWT, Swing, JavaFX & SWT 2
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
A JavaFX HTMLEditor in Text umwandeln AWT, Swing, JavaFX & SWT 2
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
2 JLabel - setText ändert den Text nicht AWT, Swing, JavaFX & SWT 4
B Jlabel Text von anderen Klasse aus ändern AWT, Swing, JavaFX & SWT 9
stylegangsta JLabel anzuzeigenden Text zentrieren AWT, Swing, JavaFX & SWT 9
javampir Java FX Text verschwindet nicht AWT, Swing, JavaFX & SWT 9
Tausendsassa Text changed event handler jTextField AWT, Swing, JavaFX & SWT 3
Tom299 JavaFX Text oder Label benutzen AWT, Swing, JavaFX & SWT 4
E To get a color text on the TextArea AWT, Swing, JavaFX & SWT 4
E To get color text on the TextArea AWT, Swing, JavaFX & SWT 5
M Swing JTextPane, Bilder und Text-flow AWT, Swing, JavaFX & SWT 2
Z AWT JLabel setzt kein neuen Text AWT, Swing, JavaFX & SWT 6
D Event Handling Aus einer anderen Klasse heraus einen Text des JLabels ändern. AWT, Swing, JavaFX & SWT 12
T JavaFX Editable Combobox Text-Selektierung nach Trigger AWT, Swing, JavaFX & SWT 4
S JLabel-Text in Methode setzen? AWT, Swing, JavaFX & SWT 2
F JPanel "zeichnet" keinen Text AWT, Swing, JavaFX & SWT 14
U WYSIWYG Text-Editor für JFrames AWT, Swing, JavaFX & SWT 8
C Button Text in JList neue Zeile AWT, Swing, JavaFX & SWT 6
T MausClick soll TExt ändern AWT, Swing, JavaFX & SWT 6
J Text bei Eingabe löschen AWT, Swing, JavaFX & SWT 5
A SWT Auto completion in text box AWT, Swing, JavaFX & SWT 5
C Geloest: JTextfield: Titel automatisch entfernen, sobald Text eingegeben wird AWT, Swing, JavaFX & SWT 1
I Text zur Linie zeichnen AWT, Swing, JavaFX & SWT 1
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
X AWT Text der mit Graphics "drawString(...)" geschreiben wurde wieder löschen. AWT, Swing, JavaFX & SWT 6
O Swing Text aus Textfield auslesen AWT, Swing, JavaFX & SWT 8
B Text auf Display ausgeben [LWJGL] AWT, Swing, JavaFX & SWT 2
G Text im textfeld in einem Editor anzeigen AWT, Swing, JavaFX & SWT 18
S TextArea get Selected row(Text) AWT, Swing, JavaFX & SWT 6
A Radio Buttons sollen den Text der text Area bestimmen AWT, Swing, JavaFX & SWT 9
BRoll JButton Text nicht ausblenden ("...") AWT, Swing, JavaFX & SWT 2
J LayoutManager Text Spielerein GUI AWT, Swing, JavaFX & SWT 2
H Javafx - Styled Text AWT, Swing, JavaFX & SWT 5
M Text Area 1. Zeile oben AWT, Swing, JavaFX & SWT 4
A Swing Focus der Radio Buttons + text bleibt gleich und gleichzeitige ausgabe zweier Objekte in 1. Fenster AWT, Swing, JavaFX & SWT 3
R JavaFX Automatischer Zeilenumbruch in Text AWT, Swing, JavaFX & SWT 13
P JList/JScroolPane Text verschieben und text wrappen AWT, Swing, JavaFX & SWT 3
F Dialog mit Titel, Text und Ok Button AWT, Swing, JavaFX & SWT 2
T Swing HTML Text aus JLabel ohne "HTML-Tags" in String einlesen AWT, Swing, JavaFX & SWT 5
TheJavaKid DocumentListener soll Text in JTextField ändern AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben