Zum Inhalt springen

Wie öffne ich einen existierenden Dialog


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.

Geschrieben

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

Geschrieben

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.

Geschrieben

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.

B) 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?

Geschrieben

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.

Geschrieben


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!

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...