Προς το περιεχόμενο

Applet με 2 πλαίσια! Πως μπορεί να γίνει;


chris_psycho

Προτεινόμενες αναρτήσεις

Δημοσ.

Προσπαθώ να κάνω ένα applet όπου θα δημιουργείτε ένα πλαίσιο (πλαίσιο 1) που θα δέχεται δεδομένα από τον χρήστη και θα προκαλεί την εμφάνιση ενός 2ου πλαισίου (πλαίσιο 2) το οποίο και πάλι θα δέχεται δεδομένα από τον χρήστη και μέρος αυτών των δεδομένων θα επιστρέφονται και θα τα εμφανίζονται στο πλαίσιο 1. Μπορεί κάποιος να βοηθήσει;;

 

Αν βρει κάποιος κάποιο έτοιμο παράδειγμα μαζί με τον κώδικα του στο web ας το μοιραστεί μαζί μου και θα βρω εγώ άκρη!

 

Ευχαριστώ πολύ!

Δημοσ.

Δεν χρειαζεται να ρωτας το ιδιο πραγμα με διαφορετικα ονοματα, christomar

 

Μια προχειρη λυση.

Αυτο θα πρεπει να ειναι αρκετο για να καταλαβεις πως συνεργαζονται τα frames, και γενικως αντικειμενα μεταξυ τους. Υπαρχουν και καλυτεροι τροποι.

 

 

>
import java.applet.Applet;
import java.awt.Button;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Rectangle;
import java.awt.SystemColor;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Applet1 extends Applet {

   private Frame1 fr1;
   private Frame2 fr2;

   public Applet1() {
   }

   public void init() {
       try {
           fr1 = new Frame1();
           //ftiaxnoume to fr1 kai to pername san parametro sthn kataskeui tou fr2
           fr2 = new Frame2(fr1);
           fr1.setVisible(true);
           fr2.setVisible(true);
       } catch (Exception e) {
           e.printStackTrace();
       }
   }
   
   public class Frame1 extends Frame {
       private TextField textField1 = new TextField();

       public Frame1() {
           try {
               this.setLayout( null );
               this.setSize( new Dimension( 400, 300 ) );
               this.setBackground( SystemColor.control );
               textField1.setBounds(new Rectangle(30, 95, 345, 30));
               this.add(textField1, null);
               textField1.setText("text apo to frame1");
           } catch (Exception e) {
               e.printStackTrace();
           }
       }

       public String getTextFromTextField1() {
       // epeidi einai public, exeis prosbasi kai apo alla antikeimena
           return textField1.getText();
       }
   }
   
   public class Frame2 extends Frame {
       private TextField textField1 = new TextField();
       private Button button1 = new Button();
       private Frame1 fr1;

       public Frame2(Frame1 fr1) {
           try {
               this.setLayout( null );
               this.setSize( new Dimension( 400, 300 ) );
               this.setBackground( SystemColor.control );
               textField1.setBounds(new Rectangle(30, 95, 345, 30));
               button1.setLabel("pata me na pareis text apo to frame1");
               button1.setBounds(new Rectangle(45, 200, 320, 25));
               button1.addActionListener(new ActionListener() {
                           public void actionPerformed(ActionEvent e) {
                               button1_actionPerformed(e);
                           }
                       });
               this.add(button1, null);
               this.add(textField1, null);
               this.fr1 = fr1; 
               // etsi to fr1 pou pairnei san parametro ginetai to
               // fr1 pou anikei san attribute sto fr2 kai mporei to
               // fr2 pleon na to xrisimopoisei kanonika
           } catch (Exception e) {
               e.printStackTrace();
           }
       }

       private void button1_actionPerformed(ActionEvent e) {
       textField1.setText(fr1.getTextFromTextField1()); 
       }
   } 
}

 

>
<HTML>
<HEAD>
<TITLE>
Title
</TITLE>
</HEAD>
<BODY>
<APPLET CODE="Applet1" HEIGHT="100" WIDTH="100" ALIGN="bottom">This browser does not support Applets.</APPLET>
</BODY>
</HTML>

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...