L
Louis2
Gast
Hallo,
also ich habe 2 Frames, eins ruft das zweite auf und setzt es auf visible, das zweite Frame ruft aber Variablen vom ersten auf. Beim compilieren kommt dann eine Fehlermeldung weil beide Frames sich gegenseitig aufrufen und das geht wohl nicht. Wie kann ich es lösen?
Hinter dem ganzen steckt, dass ich erst ein Element der ComboBox auswähle und dann soll das zweite Frame erscheinen wo ich Sachen auswählen möchte.
Main Frame (EmailClient):
ruft (FieldsSelection):
Die Fehlermeldung beim compilieren
also ich habe 2 Frames, eins ruft das zweite auf und setzt es auf visible, das zweite Frame ruft aber Variablen vom ersten auf. Beim compilieren kommt dann eine Fehlermeldung weil beide Frames sich gegenseitig aufrufen und das geht wohl nicht. Wie kann ich es lösen?
Hinter dem ganzen steckt, dass ich erst ein Element der ComboBox auswähle und dann soll das zweite Frame erscheinen wo ich Sachen auswählen möchte.
Main Frame (EmailClient):
Code:
public class EmailClient extends JFrame implements WindowListener, ActionListener
{
private JButton sendButton = new JButton(" Send Messages ");
private JButton cancelButton = new JButton("Cancel");
private JLabel valueLabel = new JLabel(" Number of rows: ");
private JProgressBar bar = new JProgressBar();
private JLabel valueProg = new JLabel();
FieldsSelection main2 = new FieldsSelection();
.
.
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
// OCI8-Treiber funktioniert
//String url = "jdbc:oracle:oci8:@"+main.DBName;
// Thin-Treiber funktioniert auch
String url = "jdbc:oracle:thin:@"+main.DBServer+":1521:"+main.DBName;
connection = DriverManager.getConnection(url, main.DBUser, main.DBPassword);
}
catch(ClassNotFoundException e1)
{
JOptionPane.showMessageDialog(null, "The required connection class (Java-DB) was not found");
}
.
main2.setVisible(true);
.
ruft (FieldsSelection):
Code:
public class FieldsSelection extends JFrame
{
EmailClient main3 = new EmailClient();
JTable table;
String comboinhalt[];
boolean isselected;
public FieldsSelection()
{
super("Java bulk-email (Fields Selection)");
Container contentPane = this.getContentPane();
contentPane.setLayout(new BorderLayout());
String[] title = new String[]
{
"Fields", "Selection"
};
final DefaultTableModel model = new DefaultTableModel (title,0);
table = new JTable(model);
getContentPane().add(new JScrollPane(table), BorderLayout.SOUTH);
try
{
String resultselectedtable=new String();
String resulttablefields=new String();
Statement selectedtable = main3.connection.createStatement(); //Variable Connection wird benötigt
resultselectedtable = "SELECT do.doctable FROM doctable do, description d WHERE do.active='1' and do.doctable=d.code and d.language='de' and d.description='" + main3.selectedChoice.getSelectedItem() + "'";
ResultSet rs1 = selectedtable.executeQuery(resultselectedtable);
Statement tablefields = main3.connection.createStatement();
resulttablefields = "SELECT * FROM resultselectedtable";
ResultSet rs = tablefields.executeQuery(resulttablefields);
List fields = new ArrayList();
while (rs.next())
{
fields.add(rs.getString(1));
}
List listfields = (java.util.List) fields;
int fieldslen=listfields.size();
for (int i=0;i<fieldslen;i++)
{
String outlistfields = (String) listfields.get(i);
model.addRow(new Object[] {outlistfields, isselected});
}
}
catch(Exception e3)
{
JOptionPane.showMessageDialog(null, "Error: " + "\n" + e3.getMessage());
}
}
}
Die Fehlermeldung beim compilieren
Code:
Exception in thread "main" java.lang.StackOverflowError
at java.util.Hashtable.put(Hashtable.java:401)
at sun.java2d.Disposer.add(Disposer.java:101)
at sun.java2d.Disposer.addRecord(Disposer.java:69)
at sun.awt.windows.Win32SurfaceData.initOps(Native Method)
at sun.awt.windows.Win32SurfaceData.<init>(Win32SurfaceData.java:448)
at sun.awt.windows.Win32SurfaceData.createData(Win32SurfaceData.java:316)
at sun.awt.Win32GraphicsConfig.createSurfaceData(Win32GraphicsConfig.java:357)
at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java:332)
at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java:313)
at sun.awt.windows.WComponentPeer.setBounds(WComponentPeer.java:124)
at sun.awt.windows.WComponentPeer.initialize(WComponentPeer.java:573)
at sun.awt.windows.WCanvasPeer.initialize(WCanvasPeer.java:69)
at sun.awt.windows.WPanelPeer.initialize(WPanelPeer.java:58)
at sun.awt.windows.WWindowPeer.initialize(WWindowPeer.java:86)
at sun.awt.windows.WFramePeer.initialize(WFramePeer.java:168)
at sun.awt.windows.WComponentPeer.<init>(WComponentPeer.java:534)
at sun.awt.windows.WCanvasPeer.<init>(WCanvasPeer.java:35)
at sun.awt.windows.WPanelPeer.<init>(WPanelPeer.java:54)
at sun.awt.windows.WWindowPeer.<init>(WWindowPeer.java:82)
at sun.awt.windows.WFramePeer.<init>(WFramePeer.java:152)
at sun.awt.windows.WToolkit.createFrame(WToolkit.java:360)
at java.awt.Frame.addNotify(Frame.java:491)
at java.awt.Window.pack(Window.java:484)
at emailclient.EmailClient_Mail.<init>(EmailClient_Mail.java:162)
at emailclient.EmailClient.<init>(EmailClient.java:73)
at emailclient.FieldsSelection.<init>(FieldsSelection.java:19)
at emailclient.EmailClient.<init>(EmailClient.java:74) // 74: FieldsSelection main2 = new FieldsSelection();
at emailclient.FieldsSelection.<init>(FieldsSelection.java:19) // 19: EmailClient main3 = new EmailClient();