L
LeMalSaint
Gast
Hallo alle
ich habe ein Problem mit dem verhältniss Frame-Dialog
Mein Frame erstellt nen Dialog,der wiederum eine Variabel der Klasse frame überschreiben soll.
Das klappt. Diese variabel soll allerdings die anzahl der buttons im frame festlegen, nur warted frame nicht auf eine rückgabe durch den dialog,sondern vewendet den initialwert...wie kann ich meinem Frame sagen es soll warten?
hier mal der code,erst frame dann dialog
Vielen dank für ideen
ich habe ein Problem mit dem verhältniss Frame-Dialog
Mein Frame erstellt nen Dialog,der wiederum eine Variabel der Klasse frame überschreiben soll.
Das klappt. Diese variabel soll allerdings die anzahl der buttons im frame festlegen, nur warted frame nicht auf eine rückgabe durch den dialog,sondern vewendet den initialwert...wie kann ich meinem Frame sagen es soll warten?
hier mal der code,erst frame dann dialog
Code:
import javax.swing.*;
import java.awt.*;
public class Fenster {
public int eingabezeile1;
private Dialog dialog;
public Fenster()
{
createAndShowGUI();
}
private void createAndShowGUI() {
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
JFrame frame = new JFrame("Schiffeversenken");
frame.setSize(300,300);
Dimension d = new Dimension(frame.getSize());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
GridLayout gridbag = new GridLayout(4,4);
panel.setSize(d);
panel.setLayout(gridbag);
dialog = new Dialog(frame);
eingabezeile1 = dialog.gibGroesse();
for(int i=0;i<eingabezeile1;i++)
{
panel.add(this.button());
}
frame.add(panel);
frame.setVisible(true);
}
private JButton button()
{
JButton knopf = new JButton();
knopf.setSize(20,20);
knopf.setBorderPainted(true);
knopf.setBackground(Color.BLACK );
knopf.setVisible(true);
return knopf;
}
public static void main(String[] args) {
new Fenster();
}
}
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Dialog implements ActionListener
{
private int eingabezeile;
private JDialog dialog;
private JComboBox groesse;
public Dialog(JFrame owner) {
kreation(owner);
}
public JDialog kreation(JFrame owner)
{
JDialog dialog = new JDialog(owner);
dialog.setModal(true);
dialog.setSize(200,200);
dialog.add(groesse());
dialog.setVisible(true);
dialog.setDefaultCloseOperation(dialog.EXIT_ON_CLOSE);
return dialog;
}
public JComboBox groesse()
{
String[]Zahl ={"Speilfeldgröße","10","15","20"};
JComboBox groesse =new JComboBox(Zahl);
groesse.addActionListener(this);
return groesse;
}
public void actionPerformed(ActionEvent e){
if (e.getSource() == groesse){
if (groesse.getSelectedIndex() == 0){}
if (groesse.getSelectedIndex() == 1){switcheGroesse(10); }
if (groesse.getSelectedIndex() == 2){switcheGroesse(15);}
if (groesse.getSelectedIndex() == 3){switcheGroesse(20);}
}
}
public void switcheGroesse(int wahl)
{
eingabezeile =wahl;
}
public int gibGroesse ()
{
return this.eingabezeile;
}
public void aktiv()
{
}
}
Vielen dank für ideen