Создать объект по нажатию на кнопку - Java
Формулировка задачи:
Столкнулся с проблемой: (доделывая приложения из прошлой темы) разбил все по классам, чтобы было красиво, начал делать класс для работы с 2 JFrame. Нужно чтобы при нажатии на кнопку создавались TextField и TextArea, инфу из которых я буду сохранять в базу и запускать из-под 1 JFrame. 1 JFrame-parent текущего JFrame. Почитал про MVC, потоки, не очень разобрался, решил пока сделать просто чтобы при тычке на кнопку выводилось 2 поля, но они почему-то не выводятся.
вот текст класса
package diplomawork;
import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.*;
public class ExpertTableForm extends TestCaseForm{
/**
*
*/
private JInternalFrame ifr2=new JInternalFrame("Expert table", true, true, true, true);
private static final long serialVersionUID = 1L;
public class TestActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
//Код, который нужно выполнить при нажатии
JTextField tf= new JTextField(50);
ifr2.add(tf);
tf.setVisible(true);
JTextArea ta=new JTextArea(5, 100);
ifr2.add(ta);
ta.setVisible(true);
JScrollPane sp=new JScrollPane(ta);
ifr2.add(sp);
sp.setVisible(true);
}
}
ExpertTableForm(String s) {
super(s);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(dp);
ifr2.setBounds(210, 10, 200, 300);
ifr2.setVisible(true);
dp.add(ifr2);
JButton button = new JButton("Test button");
ActionListener actionListener = new TestActionListener();
button.addActionListener(actionListener);
button.setVisible(true);
button.setBounds(20,20,250,70);
ifr2.add(button);
}
}
с кнопками разобрался, осталось сделать с базой)
Решение задачи: «Создать объект по нажатию на кнопку»
textual
Листинг программы
public class SaveActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
stf=tf.getText();
sta=ta.getText();
ResultSet rs = null;
try{
if(con==null){
con= DriverManager.getConnection(url, login, password);
}
PreparedStatement pstmt = con.prepareStatement(query4);
pstmt.setInt(1, NextID());
pstmt.setString(2, stf);
pstmt.setString(3, sta);
rs = pstmt.executeQuery();
}
catch (SQLException eI) {
eI.printStackTrace();
}
dm.closeFrame(TestCaseForm.ifr1);
}
}
public class ReloadActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
TestCaseForm d=new TestCaseForm("Set Question");
d.setVisible(true);
}
}