JButton och JTextField Hjälp!

Permalänk
Medlem

JButton och JTextField Hjälp!

Hej!

Jag håller på att skapa ett program men jag har kört fast lite.

Programmet har ett GUI med tre knappar och ett text fält. Det jag vill göra är att när man trycker på en av knapparna så ska man ändra på vad som står i text fältet. Jag har försökt med olika saker men jag tror att jag inte har tillräckligt med kunskap för det här. Därför vänder jag mig till er för hjälp.

Hur programmet är uppbyggt.

Jag har tre classer: main, Gui och HandlerAdd.
Det är i Gui jag har deklarerat knapparna och textfältet och där har jag även en actionlistener för en av knapparna. Jag har en string variabel i Gui classen som jag vill kunna ändra i och med att jag trycker på knappen.
Knappens funktion är skriven i HandlerAdd och det är här jag har fått problem.

I HandlerAdd så finns actionPerformed metoden. I den har jag skrivit att en input fönster ska öppna och be användaren skriva in något. Det här som användaren har skrivit in vill jag ska dyka upp i textfältet. Jag antar att man ska använda sig av ett return statement på något sätt men jag har inte lyckats.

Main classen :

import javax.swing.JFrame; /*********** * * @author "Dals" * Startade: 19.45 12/5 2011 * */ public class main { public static void main(String[] args) { Gui gui = new Gui(); gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); gui.setSize(640, 480); gui.setVisible (true); gui.setResizable(false); gui.setLocationRelativeTo(null); } }

Gui klassen:

import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; public class Gui extends JFrame { // variabler för knappar,textfält osv skrivs in här public JTextField Sum; private JButton add; private JButton minus; private JButton close; public Gui () { // basic gui stuff. super ("MoneyBook"); setLayout (new FlowLayout () ); // Knappar ,textfält osv skrivs in nedan Sum = new JTextField (); add (Sum); add = new JButton ("ADD"); add (add); minus = new JButton ("WITHDRAW"); add (minus); close = new JButton ("Exit"); add (close); // Handlers för knapparna och textfältet. HandlerAdd plus = new HandlerAdd (); add.addActionListener(plus); HandlerMinus negative = new HandlerMinus (); minus.addActionListener (negative); } }

HandlerAdd klassen :

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JOptionPane; public class HandlerAdd implements ActionListener { String summa = "0"; public void actionPerformed(ActionEvent event) { summa = JOptionPane.showInputDialog("Enter how much money you want to add"); } }

Jag hoppas ni förstår vad jag menar och jag ber om ursäkt för mycket text men hoppas på hjälp.
Tack på förhand
/ Dals

Permalänk
Medlem

Ett klassiskt dilemma, där lösningen har fått ett eget design pattern uppkallat efter sig - Observer Pattern. Enkelt att implementera och administrera, kika på följande länkar så borde du få rätsida på det:

http://www.javaworld.com/javaworld/jw-10-1996/jw-10-howto.htm...
http://java-x.blogspot.com/2007/01/implementing-observer-patt...

Permalänk
Medlem

Okay tack förstår dock inte riktigt hur jag ska göra. Skulle du kunna peka mig rätt?