2017-06-29 5 views
0

Je veux contrôler JFrame de "PART3" toute aide? Stackoverflow demande pour plus d'infos;) Donc, mon idée est PART3 gf Je sais que cela est faux de sorte que toute aideContrôle JFrame autre void?

import java.io.IOException; 
import javax.swing.JFrame; 

public class test { 
    public static void main(String[] args) throws IOException{ 
     SetUp g =new SetUp(); 
     g.PART2(); 
     g.PART3();  

}} 

class SetUp { 
    void PART2()throws IOException{ 
     JFrame f = new JFrame(); 

     f.setTitle("Test"); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     // System.out.println(f); 
    } 

    void PART3()throws IOException{  
     SetUp g =new SetUp(); 
     g.f.setSize(128,128); 
     g.f.setLocation(10,10); 
     g.f.setVisible(true); 

     // System.out.println(g.f); 
    } 
} 

Alors mon idée est PART3 gf Je sais que cela est faux de sorte que toute aide

+0

Qu'entendez-vous par contrôle JFrame? – Lemonov

Répondre

1

f doit être sur le terrain pour y accéder dans une autre méthode.

class SetUp { 

    private JFrame f; // `f` is now an instance field of the SetUp class 

    void PART2()throws IOException { 
     f = new JFrame(); 
     f.setTitle("Test"); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 

    void PART3()throws IOException{ 
     // SetUp g =new SetUp(); 
     // you can directly access 'f' here, there's no need to create a new object 

     f.setSize(128,128); 
     f.setLocation(10,10); 
     f.setVisible(true); 
    } 
} 
+0

Pourquoi utiliser le champ f et créer une instance de l'objet SetUp dans la classe SetUp? C'est dans ce cas complètement inutile. – Lemonov

+1

@Lemonov hehe, je n'avais pas encore fini d'éditer, j'ai simplement réutilisé son code. –

+0

Merci beaucoup c'est super :) –