sunnyw86 Geschrieben 24. Januar 2007 Teilen Geschrieben 24. Januar 2007 Hallo Ich hoffe ihr könnt mir helfen. Ich habe einen Dialog, wo sich auf der Linken seite ein JTree befindet. In diesem Tree habe ich ein PopUp Menü eingebaut. Das heißt, wenn ich auf die rechte Maustaste klicke erscheint "Neu". Nun will ich auf "Neu" klicken und es soll sich ein Dialog öffnen. Diesen Dialog habe ich schon angelegt. Ich habe zwar hinbekommen einen neuen Dialog zu öffnen, möchte aber gern den existierenden öffnen. Ich weiß echt nicht mehr weiter. Ich danke euch jetzt schon. Gruß sunnyw86 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 24. Januar 2007 Teilen Geschrieben 24. Januar 2007 Hast Du auch etwas Code auf Lager? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sunnyw86 Geschrieben 24. Januar 2007 Autor Teilen Geschrieben 24. Januar 2007 Also das ist mein ActionEvent private void menuItem6ActionPerformed(ActionEvent e) { JDialog dialog = new JDialog(); dialog.setVisible(true); } meine main: public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new JDialog(new javax.swing.JDialog(), true).setVisible(true); } }); } Somit rufe ich aber ein neues Fenster auf. Ich will den Dialog aufrufen der unter Test.java gespeichert ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kingofbrain Geschrieben 24. Januar 2007 Teilen Geschrieben 24. Januar 2007 Servus, was ist Deine Test.java? Im Prinzip ist es halt so, das Du Dir eine Referenz auf ein initialisiertes Objekt irgendwo merken musst (wahrscheinlich in einer Klassenvariable) und dieses dann bei Bedarf heranziehen und sichtbar machen. Bring noch mal den relevanten Code mit und eine aussagekräftige Fehlerbeschreibung, dann schauen wir weiter. Peter Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sunnyw86 Geschrieben 24. Januar 2007 Autor Teilen Geschrieben 24. Januar 2007 Test.java ist meine Datei, wo ich mein Dialog gespeichert habe, denn ich aufrufen will. private void menuItem6ActionPerformed(ActionEvent e) { JDialog dialog = new JDialog(); dialog = (JDialog)new ObjectInput("Test.java"); //Fehler dialog.setVisible(true); } Ich glaube das ObjectInput falsch ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigredeyes Geschrieben 24. Januar 2007 Teilen Geschrieben 24. Januar 2007 Ich glaube das ObjectInput falsch ist. das glaub ich auch.... so wie ich dich verstanden habe, hast du einen dialog mit eben einem popup-menu und willst nun vom popup-menu aus eben einen dialog sichtbar oder unsichtbar machen. stimmt soweit? zusätzlich willst du den 2. dialog nur 1 x anlegen und ihn sozusagen "wiederverwenden". class mainDialog extends JDialog implements ActionListener{ private JDialog neuerDialog = new JDialog("neu"); private JPopupmenu popeldipopp = new JPopupmenu (); //kontruktor mainDialog(){ popeldipopp.addActionListener(this); } //override public void actionPerformed(ActionEvent ev){ neuerDialog.setVisible(true); } } [/php] bigredeyes p.s. code ungetestet und pseudocode. *not for commercial use!* edit: a) die .java datei soll immer wie die klasse heißen. ein objekt aus einer .java-datei zur laufzeit zu kriegen bedarf es einiges. das willst du bestimmt noch nicht machen... c) kleine dumme frage: wie lange progs du schon objekt-orientiert? d) sagt die model-view-controller (MVC) was? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sunnyw86 Geschrieben 24. Januar 2007 Autor Teilen Geschrieben 24. Januar 2007 Nicht ganz. Also ich habe in dem Ordner 2 Dateien. Einmal Startbildschirm.java und einmal Test.java. In Startbildschirm habe ich ein Fenster gebaut mit einem Menü und auf der linken Seite ein Tree. Wenn ich den Tree mit der rechten Maustaste anklicke erscheint PopUp. Es gibt zwei Auswahlmöglichkeiten Einmal "Neu" und einmal "Löschen". Wenn ich auf Löschen klicke, soll ein neues Fenster erscheinen. Dieses Fenster habe ich in Test.java angelegt. So hier der Code von Startbildschirm.java: import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.io.ObjectInput; import javax.swing.*; import javax.swing.tree.*; /* * Created by JFormDesigner on Mon Jan 22 14:32:31 CET 2007 */ public class Startbildschirm extends JFrame { public Startbildschirm() { initComponents(); } private void menuItem1ActionPerformed(ActionEvent e) { // TODO add your code here doExit(); } private boolean hasChanged = false; //beendet das Programm private void doExit() { if (hasChanged) { int state = JOptionPane.showConfirmDialog(this, "File has been changed. Save before exit?"); if (state == JOptionPane.YES_OPTION) { // saveFile(); } else if (state == JOptionPane.CANCEL_OPTION) { return; } } System.exit(0); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new JDialog(new javax.swing.JDialog(), true).setVisible(true); } }); } private void menuItem6ActionPerformed(ActionEvent e) { JDialog dialog = new JDialog(); // dialog = (JDialog)new ObjectInput("Test.java"); dialog.setVisible(true); } private void initComponents() { // JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents menuBar1 = new JMenuBar(); menu1 = new JMenu(); menuItem1 = new JMenuItem(); menu2 = new JMenu(); menuItem2 = new JMenuItem(); menuItem3 = new JMenuItem(); menu3 = new JMenu(); menuItem4 = new JMenuItem(); menuItem5 = new JMenuItem(); menu4 = new JMenu(); scrollPane1 = new JScrollPane(); tree1 = new JTree(); popupMenu1 = new JPopupMenu(); menuItem6 = new JMenuItem(); menuItem7 = new JMenuItem(); //======== this ======== setTitle("Automatische Testautomatisierung"); Container contentPane = getContentPane(); contentPane.setLayout(null); //======== menuBar1 ======== { //======== menu1 ======== { menu1.setText("Datei"); //---- menuItem1 ---- menuItem1.setText("Exit"); menuItem1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { menuItem1ActionPerformed(e); } }); menu1.add(menuItem1); } menuBar1.add(menu1); //======== menu2 ======== { menu2.setText("Bearbeiten"); //---- menuItem2 ---- menuItem2.setText("Neu"); menu2.add(menuItem2); //---- menuItem3 ---- menuItem3.setText("L\u00f6schen"); menu2.add(menuItem3); } menuBar1.add(menu2); //======== menu3 ======== { menu3.setText("Attribute"); //---- menuItem4 ---- menuItem4.setText("Neu"); menu3.add(menuItem4); //---- menuItem5 ---- menuItem5.setText("Bearbeiten"); menu3.add(menuItem5); } menuBar1.add(menu3); //======== menu4 ======== { menu4.setText("Start"); } menuBar1.add(menu4); } setJMenuBar(menuBar1); //======== scrollPane1 ======== { //---- tree1 ---- tree1.setRootVisible(false); tree1.setShowsRootHandles(true); tree1.setComponentPopupMenu(popupMenu1); tree1.setModel(new DefaultTreeModel( new DefaultMutableTreeNode(" ") { { } })); scrollPane1.setViewportView(tree1); } contentPane.add(scrollPane1); scrollPane1.setBounds(0, 0, 120, 405); ((JComponent)contentPane).setPreferredSize(new Dimension(570, 425)); pack(); setLocationRelativeTo(getOwner()); //======== popupMenu1 ======== { //---- menuItem6 ---- menuItem6.setText("Neu"); menuItem6.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { menuItem6ActionPerformed(e); } }); popupMenu1.add(menuItem6); //---- menuItem7 ---- menuItem7.setText("L\u00f6schen"); popupMenu1.add(menuItem7); } // JFormDesigner - End of component initialization //GEN-END:initComponents } // JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables private JMenuBar menuBar1; private JMenu menu1; private JMenuItem menuItem1; private JMenu menu2; private JMenuItem menuItem2; private JMenuItem menuItem3; private JMenu menu3; private JMenuItem menuItem4; private JMenuItem menuItem5; private JMenu menu4; private JScrollPane scrollPane1; private JTree tree1; private JPopupMenu popupMenu1; private JMenuItem menuItem6; private JMenuItem menuItem7; // JFormDesigner - End of variables declaration //GEN-END:variables } Hier der Code von Test.java: import java.awt.*; import javax.swing.*; /* * Created by JFormDesigner on Tue Jan 23 13:51:56 CET 2007 */ /** * @author User #3 */ public class Test extends JDialog { public Test(Frame owner) { super(owner); initComponents(); } public Test(Dialog owner) { super(owner); initComponents(); } private void initComponents() { // JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents button1 = new JButton(); //======== this ======== Container contentPane = getContentPane(); contentPane.setLayout(null); //---- button1 ---- button1.setText("text"); contentPane.add(button1); button1.setBounds(new Rectangle(new Point(95, 85), button1.getPreferredSize())); ((JComponent)contentPane).setPreferredSize(new Dimension(400, 300)); pack(); setLocationRelativeTo(getOwner()); // JFormDesigner - End of component initialization //GEN-END:initComponents } // JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables private JButton button1; // JFormDesigner - End of variables declaration //GEN-END:variables } Ich hoffe es hilft. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigredeyes Geschrieben 24. Januar 2007 Teilen Geschrieben 24. Januar 2007 private void menuItem6ActionPerformed(ActionEvent e) { JDialog dialog = new JDialog(); // dialog = (JDialog)new ObjectInput("Test.java"); dialog.setVisible(true); } [/php] [php] private void menuItem6ActionPerformed(ActionEvent e) { Test dialog = new Test(); dialog.setVisible(true); } ganz einfach so? denn du willst ja nicht den JDialog, sondern deine eigene klasse. bigredeyes p.s. ein eckigeklammer php eckigeklammer DEIN CODE HIER und eckigeklammer / php eckigeklammer machts übersichtlicher! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sunnyw86 Geschrieben 24. Januar 2007 Autor Teilen Geschrieben 24. Januar 2007 Super hat geklappt.Vielen vielen Dank. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 24. Januar 2007 Teilen Geschrieben 24. Januar 2007 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.