verschiedene Label auf Knopfdruck abrufen

Status
Nicht offen für weitere Antworten.

clou

Mitglied
Hallo,
meine Prüfungsaufgabe nähert sich dem Ende, morgen ist Abgabe und es gibt noch einiges zu tun :-(

Eines der letzten Probleme ist Folgendes: Ich habe drei Buttons. Button1 soll Bild1 aufrufen, Button2 soll Bild 2 aufrufen und Button3 eine Textarea.

Bild 1 erscheint bereits bei Programmbeginn. Aber die Verknüpfung mit dem Button klappt nicht. Wenn ich den Code so programmiere, dass das Label2 auf Knopfdruck des Buttons2 in mein Panel reingesetzt wird, dann kommt bei der Kompilierung die Fehlermeldung "local variable constraints is accessed from within inner class; needs to be declared final gridbag.setConstraints(lbl1, constraints);", constraints ist doch keine Variable!? (dummguck). Wahrscheinlich wieder etwas, das ich nicht verstanden habe, da der Kurs auf Schwedisch ist. Aber die Zeit drängt, deshalb hoffe ich, dass mir hier jemand einen Tipp gibt.

Hier ist der Code:
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Projekt extends Ramen
{
    private String text1;

void buildConstraints(GridBagConstraints gbc, int gx, int gy,
        int gw, int gh, int wx, int wy) {

        gbc.gridx = gx;
        gbc.gridy = gy;
        gbc.gridwidth = gw;
        gbc.gridheight = gh;
        gbc.weightx = wx;
        gbc.weighty = wy;
    }

  public Projekt()
  {
	JScrollPane scrollyta;
	//JLabel lbl1, lbl2, lbl3;
	ImageIcon bild1, bild2;
	text1=("");

setSize(500, 400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints constraints = new GridBagConstraints();
        JPanel pane = new JPanel();
        pane.setLayout(gridbag);

        // textfield
        buildConstraints(constraints, 0, 0, 5, 1, 100, 0);
        constraints.fill = GridBagConstraints.HORIZONTAL;
        final JTextField textfält = new JTextField();
        gridbag.setConstraints(textfält, constraints);
        pane.add(textfält);

        // tomt platshåller
        buildConstraints(constraints, 0, 1, 1, 1, 0, 0);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.EAST;
        JLabel label1 = new JLabel("                    ", JLabel.LEFT);
        gridbag.setConstraints(label1, constraints);
        pane.add(label1);

		// knapp1
        buildConstraints(constraints, 1, 1, 1, 1, 0, 0);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.CENTER;
        JButton knapp1 = new JButton("Bild 1");
        gridbag.setConstraints(knapp1, constraints);
        pane.add(knapp1);

		// knapp2
        buildConstraints(constraints, 2, 1, 1, 1, 0, 0);
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.CENTER;
        JButton knapp2 = new JButton("Bild 2");
        gridbag.setConstraints(knapp2, constraints);
        pane.add(knapp2);

        // knapp3
		buildConstraints(constraints, 3, 1, 1, 1, 0, 0);
		constraints.fill = GridBagConstraints.NONE;
		constraints.anchor = GridBagConstraints.CENTER;
		JButton knapp3 = new JButton("Text area");
		gridbag.setConstraints(knapp3, constraints);
        pane.add(knapp3);


		// Label 1 (Bild 1)
		buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
		constraints.fill = GridBagConstraints.BOTH;
		final JLabel lbl1 = new JLabel(new ImageIcon("wave.gif")
		//			      SwingConstants.LEFT
	    );

        gridbag.setConstraints(lbl1, constraints);
        pane.add(lbl1);

//============== Hier beginnt das Problem
        // Label 2 (Bild 2)
		knapp2.addActionListener
		        (
		            new ActionListener()
		            {
		                public void actionPerformed( ActionEvent event )
		                {

				buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
				constraints.fill = GridBagConstraints.BOTH;
				final JLabel lbl2 = new JLabel(new ImageIcon("surf.jpg")
				//			      SwingConstants.LEFT
			    );

		        gridbag.setConstraints(lbl2, constraints);
        pane.add(lbl2);

		                }
		            }
        );

//================= Und Folgendes ist nur vorbereitet, muss auch noch mit dem Button3 verknüpft werden,
//================= aber eins nach dem Anderen :-)
        // textarea
		        buildConstraints(constraints, 0, 2, 5, 10, 100, 100);
				constraints.fill = GridBagConstraints.BOTH;
				final JTextArea textarea = new JTextArea();
				gridbag.setConstraints(textarea, constraints);
        pane.add(textarea);

        // Content Pane
        setContentPane(pane);
        setVisible(true);

// item1 - avsluta
item1.addActionListener
        (
            new ActionListener()
            {
                public void actionPerformed( ActionEvent event )
                {
                    System.exit( 0 );
                }
            }
        );

// item2 - lägg till text
item2.addActionListener
        (
            new ActionListener()
            {
                public void actionPerformed( ActionEvent event )
                {
        textarea.setText(text1 + textfält.getText());//fylla på innehåll från textfält och gammal text från textarea
        text1=(text1 + textfält.getText());//fylla på innehåll från textfält och gammal text från textarea
		textfält.setText("");// gör textfält tomt
                }
            }
        );

// item3 - radera text
item3.addActionListener
        (
            new ActionListener()
            {
                public void actionPerformed( ActionEvent event )
                {
        textarea.setText("");// gör textarea tomt
                }
            }
        );

   }

   public static void main(String [] args)
   {
       Projekt test = new Projekt();
   }
}

Vollständigkeitshalber hier noch der Code der Superclass:
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Ramen extends JFrame
{
    public JMenuBar mbar;
    public JMenu meny1, meny2;
  	public JMenuItem item1, item2, item3;
  	JPanel panel1 = new JPanel();
	JPanel panel2 = new JPanel();

  public Ramen()
  {
	  mbar = new JMenuBar();
	  meny1 = new JMenu("Arkiv");
	  meny2 = new JMenu("Info");
	  item1 = new JMenuItem("Avsluta");
	  item2 = new JMenuItem("Lägg till text");
	  item3 = new JMenuItem("Radera text");

      setJMenuBar(mbar);
      mbar.add(meny1);
      mbar.add(meny2);

      meny1.add(item1); meny2.add(item2); meny2.add(item3);

       Container c = getContentPane();
       c.setLayout(new GridBagLayout());

       c.setBackground(Color.WHITE);
       setDefaultCloseOperation(EXIT_ON_CLOSE);
       setVisible(true);
       pack();
   }

}

Es wäre super, wenn mir jemand einen Tipp hat, so dass ich weiter basteln kann. Ich weiß eure Hilfe sehr zu schätzen.

LG
Clou
 

Marco13

Top Contributor
Als schnelle Antwort:
GridBagConstraints constraints = new GridBagConstraints();
ändern in
final GridBagConstraints constraints = new GridBagConstraints();
sollte schon helfen (hab's aber nur überflogen).

Die ausführlichere Antwort ... kommt auf Nachfrage morgen... ;) oder von jemand anderem.
 

dayaftereh

Top Contributor
Du addest ja die Textarea und die Bilder im ActionListener, warum addest du die nicht vorher und setzt sie dan auf Visiable == false und im ActionListener wider auf true^^
 
S

SlaterB

Gast
> constraints ist doch keine Variable!?

constraints ist eine perfekte normale Variable wie sie im Buche steht, oder wie sind Variablen definiert?

falls dir final nicht geheuer ist, kannst du auch im ActionListener ein ganz neues GridBagConstraints-Objekt c2 anlegen,
musst dann vielleicht mehr Werte neu setzen
 

clou

Mitglied
Danke euch allen, ihr habt mir alle sehr geholfen mit euren Tipps. Aber mein Held des heutigen Tages ist dayaftereh :)
Dass ich da nicht selbst drauf gekommen bin ;-)

Suuuper - vielen Dank. Ich glaube nun, dass ich das Projekt tatsächlich noch fertig bekomme. Ansonsten meld ich mich wieder.

LG
Clou
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
N Verschiedene Konstruktoren mit gleichen Datentypen Java Basics - Anfänger-Themen 8
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
I SWT Plattformunabhängig laden - verschiedene SWT .jar laden Java Basics - Anfänger-Themen 0
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
K verschiedene Eingaben sortieren Java Basics - Anfänger-Themen 6
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
T for-each-Schleife, verschiedene Datentypen Java Basics - Anfänger-Themen 1
HoT verschiedene ArrayLists mit ähnlichem Namen in for-Schleife aufrufen Java Basics - Anfänger-Themen 3
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
M JavaFX- Verschiedene Stages Java Basics - Anfänger-Themen 1
B Get / Set - Methode für verschiedene Entities? (generisch) Java Basics - Anfänger-Themen 21
L Wie Input auf verschiedene Kriterien hin überprüfen? Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
F Komplexe Zahlen auf verschiedene Weise addieren Java Basics - Anfänger-Themen 18
N verschiedene Reihenfolgen ausgeben Java Basics - Anfänger-Themen 15
M Dijkstra Algorithmus in Graphen auf mehrere verschiedene Knoten anwenden lassen Java Basics - Anfänger-Themen 11
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
M Verschiedene Eingabe = Verschiedene Ausgaben Java Basics - Anfänger-Themen 5
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
T Datentypen Kann Java 2 verschiedene Datentypen vergleichen? Java Basics - Anfänger-Themen 2
B String auseinander nehmen in verschiedene Teile Java Basics - Anfänger-Themen 9
X Variablen Problem bei Aufteilung in verschiedene Class-Files Java Basics - Anfänger-Themen 4
E JAvaFX: Verschiedene Panels nach Klick auf Node des TreeView anzeigen Java Basics - Anfänger-Themen 0
T Java verschiedene Anweisungen Java Basics - Anfänger-Themen 23
W Verschiedene Bibliotheken in einer Anwendung? Java Basics - Anfänger-Themen 2
tuc Erste Schritte verschiedene objekte in einem feld speichern Java Basics - Anfänger-Themen 4
L Verschiedene Bilder per Knopfdruck anzeigen lassen Java Basics - Anfänger-Themen 17
J ArrayList über verschiedene Klassen verwenden Java Basics - Anfänger-Themen 7
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
G Datentypen verschiedene Objekte in eine ArrayList, Generics Java Basics - Anfänger-Themen 2
GoldenShadow Input/Output Verschiedene Versionen von Input/Output Java Basics - Anfänger-Themen 3
I Drucken in Java / verschiedene Papierformate Java Basics - Anfänger-Themen 0
P Verschiedene Java Versionen nutzen Java Basics - Anfänger-Themen 6
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
S write(), weshalb verschiedene Ausgaben? Java Basics - Anfänger-Themen 4
E Erste Schritte Verschiedene Anfängerfragen (Rekursion, Terminierung, Schleife, etc.) Java Basics - Anfänger-Themen 5
I String trennen und verschiedene Wörter holen Java Basics - Anfänger-Themen 6
B Verschiedene Objekte in 2 dimensionalem Array speichern Java Basics - Anfänger-Themen 10
S Datei ausführen, verschiedene Ordner Java Basics - Anfänger-Themen 2
O Verschiedene Farben in einer GUI Java Basics - Anfänger-Themen 15
R Klassen Mehrere/Verschiedene Objekte umcasten Java Basics - Anfänger-Themen 8
N Vererbung Verschiedene Subclasses nach cast zur Superclass unterscheiden Java Basics - Anfänger-Themen 9
D Verschiedene Fragen zu meinem Projekt Java Basics - Anfänger-Themen 6
S textPane verschiedene formatierungen Java Basics - Anfänger-Themen 8
K Verschiedene JDK´s paralell nutzen? Java Basics - Anfänger-Themen 3
M Verschiedene Möglichkeiten mit 'equals' abdecken? Java Basics - Anfänger-Themen 9
H 2 verschiedene Objekte in Liste mit Compareable sortieren Java Basics - Anfänger-Themen 7
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
N Verschiedene Klassen als Parameter elegant übergeben? Java Basics - Anfänger-Themen 4
X Listen und verschiedene Methoden Java Basics - Anfänger-Themen 6
B Zwei verschiedene Daten vergleich Java Basics - Anfänger-Themen 2
K Input/Output Verschiedene Ordner für Java u.v.m. Projekte Java Basics - Anfänger-Themen 3
G Umwandlung in verschiedene Zahlensysteme Java Basics - Anfänger-Themen 4
R Verschiedene Jar Versionen nutzen Java Basics - Anfänger-Themen 14
D Umgebungsvariable verschiedene Werte von JAVA_HOME? Java Basics - Anfänger-Themen 4
J verschiedene Anweisungen bei verschiedenen Zuständen Java Basics - Anfänger-Themen 9
F Info zwischen verschiedene Klassen austauschen Java Basics - Anfänger-Themen 4
R Input/Output verschiedene Datentypen als Bytes in Datei speichern Java Basics - Anfänger-Themen 15
Blindxantos Klassen in verschiedene Packages unterteilen Java Basics - Anfänger-Themen 2
F verschiedene Daten abspeichern Java Basics - Anfänger-Themen 13
N Verschiedene JFrames in einem JFrame anzeigen Java Basics - Anfänger-Themen 7
A Datentypen Verschiedene Threads synchronisieren Java Basics - Anfänger-Themen 3
D Mehrere verschiedene Farben pro fillRect Java Basics - Anfänger-Themen 3
M Verschiedene Werte in methoden Java Basics - Anfänger-Themen 3
K Verschiedene (Thread) Objekt-Positionen (int) in einem Array zusammenfassen Java Basics - Anfänger-Themen 3
J Verschiedene Rückgabetypen(int int char) Java Basics - Anfänger-Themen 10
S Datentypen Die verschiedene Java Datentypen [Anfänger] Java Basics - Anfänger-Themen 8
J OOP verschiedene Objekttypen ablegen Java Basics - Anfänger-Themen 4
B Welcher Feld Typ für verschiedene Datentypen? Java Basics - Anfänger-Themen 4
capgeti Verschiedene Rückgabetypen ohne Typecast möglich? Java Basics - Anfänger-Themen 7
S Verschiedene Arrays über Index aufrufen Java Basics - Anfänger-Themen 5
Developer_X in JEditorPane verschiedene Farben, verwenden Java Basics - Anfänger-Themen 7
L Verschiedene Fonts für verschiedene Dialogelemente Java Basics - Anfänger-Themen 2
G Verschiedene Packages Java Basics - Anfänger-Themen 3
G Daten in verschiedene Listen schreiben Java Basics - Anfänger-Themen 5
C Zustandsanzeige durch verschiedene Klassen Java Basics - Anfänger-Themen 4
S verschiedene Versionen Java Basics - Anfänger-Themen 2
G Verschiedene Exceptions zu gleichem Block Java Basics - Anfänger-Themen 6
T verschiedene Anfängerfragen Java Basics - Anfänger-Themen 20
J Verschiedene Ausgaben bei gleichen Ausdrücken (Typecasting?) Java Basics - Anfänger-Themen 5
N Verschiedene Input/Output Klassen Java Basics - Anfänger-Themen 3
G verschiedene datentypen in arraylist Java Basics - Anfänger-Themen 14
L verschiedene JPanel-Instanzen erstellen Java Basics - Anfänger-Themen 8
L 2 verschiedene Typen in einer Tabelle ablegen Java Basics - Anfänger-Themen 18
N Problem mit Tastatureingaben für verschiedene Datentypen Java Basics - Anfänger-Themen 3
L verschiedene formuare in einem fenster öffnen Java Basics - Anfänger-Themen 8
I Array für verschiedene Datentypen? Java Basics - Anfänger-Themen 5
R verschiedene dateitypen öffnen Java Basics - Anfänger-Themen 5
L verschiedene zeichen einlesen Java Basics - Anfänger-Themen 5
C 2 verschiedene Tables = 2 verschiedene Renderer ? Java Basics - Anfänger-Themen 5
S mit Buttons verschiedene Bilder laden Java Basics - Anfänger-Themen 4
S klassen in verschiedene Dateien Java Basics - Anfänger-Themen 5
3 Verschiedene Fragen (bin neu hier) Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben