kjey Skrevet 11. januar 2007 Del Skrevet 11. januar 2007 Hei. Som topicnavnet sier så lurer jeg på hvordan jeg kan sende en melding fra et vindu til et annet. Jeg har laget to vinduer med én knapp i hvert av dem. I første vindu kan man klikke på knappen så åpnes et nytt vindu. Men når man skal klikke på knappen i vindu nr 2 vil jeg at den skal sette teksten i vindu nr 1 til "It works!" eller et eller annet. Samtidig skal vindu nr 2 forsvinne. Noen som vet hvordan dette gjøres? Her er ihvertfall kodene: Klikk for å se/fjerne innholdet nedenfor import java.awt.*; import java.awt.event.*; import javax.swing.*; class Frame1 extends JFrame { private JLabel label = new JLabel(""); public Frame1() { setTitle("Frame 1"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(200, 100); setLayout(new FlowLayout()); JButton button = new JButton("Press me!"); add(button); button.addActionListener(new OpenFrame2()); add(label); } private class OpenFrame2 implements ActionListener { public void actionPerformed(ActionEvent event) { Frame2 frame2 = new Frame2(); frame2.setVisible(true); } } } class Frame2 extends JFrame { public Frame2() { setTitle("Frame 2"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(200, 100); setLayout(new FlowLayout()); JButton button = new JButton("Press me again!"); add(button); } private class Write implements ActionListener { public void actionPerformed(ActionEvent event) { // Hva her? } } } class Run { public static void main(String[] args) { Frame1 frame = new Frame1(); frame.setVisible(true); } } På forhånd takk! Lenke til kommentar
krigun Skrevet 11. januar 2007 Del Skrevet 11. januar 2007 MVC for eksempel? Se på koden og lær. http://csis.pace.edu/~bergin/mvc/mvcgui.html Lenke til kommentar
Qwark Skrevet 11. januar 2007 Del Skrevet 11. januar 2007 (endret) -Opprett en metode i Frame1 som setter tekst til label -Sende Frame1 inn som argument når Frame2 opprettes slik f.eks import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; class Main { public static void main(String[] args) { Frame1 frame = new Frame1(); frame.setVisible(true); } } class Frame1 extends JFrame { private JLabel label = new JLabel(""); public Frame2 frm2; public Frame1() { setTitle("Frame 1"); frm2 = new Frame2(this);//this = dette vinduet og det sendes inn som argumenti det andre setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(200, 100); setLayout(new FlowLayout()); JButton button = new JButton("Press me!"); add(button); button.addActionListener(new OpenFrame2()); add(label); System.out.println(label); } public void setLabelTxt(String txt){ label.setText(txt); } private class OpenFrame2 implements ActionListener { public void actionPerformed(ActionEvent event) { frm2.setVisible(true); } } } class Frame2 extends JFrame { private Frame1 parent; //sender Det første vinduet inn som argument i det andre public Frame2(java.awt.Frame parent ) { setTitle("Frame 2"); this.parent = (Frame1) parent; setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(200, 100); setLayout(new FlowLayout()); JButton button = new JButton("Press me again!"); Listener lytt = new Listener(); button.addActionListener(lytt); add(button); } private class Listener implements ActionListener { public void actionPerformed(ActionEvent event) { parent.setLabelTxt("FUNKER!"); } } } Endret 11. januar 2007 av Qwark Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå