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

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

Δημοσ.

Γεια σας,

Θα ήθελα να κάνω μία απλή ερώτηση GUI στη JAVA.

>
public class Buttons1 extends JFrame {

   private JLabel label1;
   private JButton button1;
   private JButton button2;

   public Buttons1() {
       setTitle("Επίδειξη JButton και ActionEvent");
       Toolkit t = Toolkit.getDefaultToolkit();
       Dimension d = t.getScreenSize();
       int x = d.width-this.getWidth();
       int y = d.height-this.getHeight();
       this.setLocation(x,y);
       setSize(500, 150);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setLocationRelativeTo(null);
       setResizable(true); 

       label1 = new JLabel("Ετικέτα");
       label1.setFont(Font.decode("Verdana-bold-20"));

       button1 = new JButton();
       button1.setText("Απενεργοποίηση ετικέτας");
       button1.addActionListener(new ActionListener(){

           @Override
           public void actionPerformed(ActionEvent e) {
               label1.setEnabled(false);
           }
       });

       button2 = new JButton("Ενεργοποίηση ετικέτας");
       button2.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent e) {
               label1.setEnabled(true);
           }
       });

       FlowLayout aLayout = new FlowLayout();
       setLayout(aLayout);

       add(button1);
       add(button2);
       add(label1);
       aLayout.setHgap(40);
       aLayout.setVgap(20);

       setVisible(true);
   }

   public static void main(String[] args) {
       
       SwingUtilities.invokeLater(new Runnable() {

           @Override
           public void run() {
               Buttons1 frame = new Buttons1();
           }
       });
    }

}

 

Γιατί στο παραπάνω παράδειγμα δεν δημιουργεί ένα αντικείμενο frame της κλάσης JFrame και

καλεί κατευθείαν τη μέθοδο setTitle κλπ...?

 

Δεν θα έπρεπε να είναι κάπως έτσι?

 

>
public class Buttons1 extends JFrame {

   private JLabel label1;
   private JButton button1;
   private JButton button2;
   private JFrame frame;

   public Buttons1() {
       frame = new JFrame();
       frame.setTitle("Επίδειξη JButton και ActionEvent");
       .
       .
       .

 

Ευχαριστώ.

Δημοσ.

Η απάντηση στην ερώτησή σου βρίσκεται ακριβώς εδώ:

 

>public class Buttons1 extends JFrame {

 

Η κλάσση Buttons1 κληρονομεί την JFrame οπότε είναι JFrame από μόνη της.

Δημοσ.

Η απάντηση στην ερώτησή σου βρίσκεται ακριβώς εδώ:

 

>public class Buttons1 extends JFrame {

 

Η κλάσση Buttons1 κληρονομεί την JFrame οπότε είναι JFrame από μόνη της.

 

Δηλαδή η κλάση JFrame δημιουργεί από μόνη της

ένα αντικείμενο frame του εαυτού της και άρα εγώ στην κλάση

Button1 αναφέρομαι σε αυτό είτε με το this. είτε

καλώντας απλά τις μεθόδους του αντικειμένου frame της κλάσης JFrame?

Δημοσ.

Ακριβώς. Η Buttons1 είναι και JFrame οπότε λειτοθργεί και ως frame. Οπότε μπορείς να το διαχειριστείς και ως JFrame.

 

ok

Ευχαριστώ!

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...