JDialog und dessen Konstruktor JDialog(JFrame owner)

  • Themenstarter Themenstarter Jac
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
J

Jac

Gast
Hi,

Mein Problem geht in Richtung JDialog, und dessen KonstruktorJDialog(JFrame owner).

Ich habe:
1. eine Anwendung die ein Fenster + Menuleiste macht. (JFrame)
2. des weiteren wird in einer anderen Klasse ein JFileChooser+TextArea(mit Text aus der
gewählten Datei) gemacht (JDialog)

FileCHooser ruft man dann durch klicken auf einen MenuEintrag auf.

Die 1. Anwendung ruft die 2. durch einen Konstruktor auf.
ok, funzt auch soweit.


Mein Problem ist nun:
Ich bekomm's nicht auf die Reihe diesen owner
aus dem Konstruktor von JDialog richtig zu setzen,
so das ich das Menu des "Mutterfensters" benutzen kann, ohne das
das Fenster der 2. Klasse(die mit dem JFileChooser+ der TextArea)
dahinter verschwindet.

Ich hoffe es ist verständlich, was ich meine und
ihr koennt mir helfen.

'Jac.
 
ok, hier der Code:

1. Das "Hauptprogramm mit der grundlegenden GUI und Commands

Code:
public class JMainChooser {
    
        public static void main (String args[]){
    
    JCommandChooser cmd = new JCommandChooser();
    JGuiChooser guui = new JGuiChooser(cmd);
    guui.setVisible(true);
    }

}

class JGuiChooser extends JFrame{
               
        public JGuiChooser(ActionListener cmd){
                super("JFileChooser mit DateiAuswahl und Ausgabe der Datei in eine JTextArea");
                JFrame parent         = new JFrame();
                JPanel panel             = new JPanel(); 
                JMenuBar mBar       = new JMenuBar(); 
                JMenu datei              = new JMenu("Datei");
                JMenu inout              = new JMenu("Input/Output");
                .......
	....usw.

                open .addActionListener(cmd);
                open.setActionCommand("open");
                close.addActionListener(cmd);
                close.setActionCommand("close");
                .......
	.....usw.
                
                setJMenuBar(mBar); 
                parent.getContentPane().add(panel);
                
                datei.add(open); 
                ......
	.....usw.
                
                addWindowListener(new WindowClosingAdapter(true));
                setSize(800,800);
                setLocation(320,100);
      }      
}

class JCommandChooser extends JFrame implements ActionListener{
        
        public void actionPerformed(ActionEvent e) {
        String string = e.getActionCommand();
        
        if (string.equals("close")){
            System.exit(0); }
        
        else if (string.equals("open")) 
            { ChooserKonstruktor ck = new ChooserKonstruktor(this);}
        
       else if (string.equals("in"))
            {ReadKonstruktor rk = new ReadKonstruktor();
             rk.goandread();}
       
        else if (string.equals("out"))
            {WriteKonstruktor wk= new WriteKonstruktor();
             wk.goandwrite();}
       }
        }       
        }      
         }


2. Die Klasse mit dem FileChooser-Konstruktor



Code:
public class ChooserKonstruktor extends JDialog{
    
    
    public ChooserKonstruktor(JFrame parent) {
       
    super(parent, "Chooser Konstruktor") ;
      
    
    setLocation(370,180);
    setSize(450,450);
    setVisible(true);
      
    JTextArea ta = new JTextArea(20,40);
    JPanel panel = new JPanel();
    getContentPane().add(panel);              
    
    panel.add(ta);
    
               
         JFileChooser chooser = new JFileChooser(); 
            int returnVal = chooser.showOpenDialog(chooser);
            
              if(returnVal == JFileChooser.APPROVE_OPTION) {
                System.out.println("You chose to open this file: " +chooser.getSelectedFile().getName()+"\n");
                File datei = new File(chooser.getSelectedFile().getPath());
                System.out.println("the current path : "+datei.getPath()+"\n");
                System.out.println(datei.getName()+"\n");
                    
 // FileReader versucht die Datei, die ausgewählt wurde auszulesen
                    try{
                    FileReader eingabestrom = new FileReader(datei);
                    int gelesen;
                    StringBuffer text = new StringBuffer(10);
                    boolean ende = false;
        
                        while(!ende){
                        gelesen = eingabestrom.read();
                        if(gelesen == -1)   ende=true;
                        else                text.append((char)gelesen); 
                        }//zu while
                    System.out.println(text);
                    
 //Ausgabe des Dateiinhalts in eine TextArea ta 
                    
                    ta.setLineWrap(true); 
                    ta.setEditable(false);
                    ta.setWrapStyleWord(true);
                    ta.setText(text.toString());
                    JScrollPane sp = new JScrollPane(ta);
                    panel.add(sp);
                    ta.setVisible(true);
                   
                    }//zu try
                    catch(IOException io){System.out.println ("Datei nicht gefunden !");}
                } //zu if
            
             
    } 
  }
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben