Передать значение переменной в другой класс Java
Хочу из одного класса передать переменную в другой, но переменная приходит в actiolistener по нажатию, и по нажатие еще одному, нужно чтоб она дальше перекочевала в другой класс. Мне нужно переменную car_number передать в класс Login
public class Car2q {
private Connection con;
private ResultSet rs;
static JTextArea textArea = new JTextArea();
static JTextArea textArea2 = new JTextArea();
static login frame = new login();
static JScrollPane scrollPane = new JScrollPane();
static JSplitPane splitPane = new JSplitPane();
static JPanel panel_left = new JPanel();
static JPanel panel_right = new JPanel();
JFrame form2sq = new JFrame();
JFrame result = new JFrame();
private static JTextField car_number_text;
private static JTextPane car_number_textP;
static class login extends JFrame {
public static void main(String[] args) throws Exception {
final Car2q c2q = new Car2q();
c2q.getReport();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
frame.setTitle("");
// frame.add(textArea);
// textArea.append("test");
frame.setSize(550,300);
// frame.setLayout(new GridLayout(0, 2, 5, 5));
frame.setExtendedState(MAXIMIZED_BOTH);
frame.add(splitPane);
splitPane.setSize(550,300);
splitPane.setLeftComponent(scrollPane);
splitPane.setLeftComponent(panel_left);
splitPane.setRightComponent(panel_right);
panel_left.setLayout(new GridLayout(0, 1, 5, 5));
panel_right.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
/* textArea.append("test");
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 0.5;
c.gridx = -1;
c.gridy = 1;
panel_right.add(textArea, c); */
}
}
public Car2q() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection();
con.createStatement();
} catch (Exception e) {
System.out.println("Error: " +e);
//System.out.println("Unable to make connection with DB" );
}
}
public String getReport() {
String car_number = null;
String report = null;
List car_number_list= new ArrayList<>();
try {
PreparedStatement st = null;
String query2 = "";
st = con.prepareStatement(query2);
rs = st.executeQuery();
// int count = 0;
while (rs.next()) {
car_number = rs.getString("car_number");
String gotit = rs.getString("car_number");
JButton btn = new JButton(gotit);
btn.setSize(100,100);
panel_left.add(btn);
ActionListener actionListener = new btn_listener(car_number);
btn.addActionListener(actionListener);
}
} catch (SQLException e) {
e.printStackTrace();
}
return car_number;
}
public class btn_listener implements ActionListener {
private final String car_number;
public btn_listener(String car_number) {
this.car_number = car_number;
}
public void actionPerformed(ActionEvent arg0) {
System.out.println(car_number);
JFrame form2sq = new JFrame(car_number);
form2sq.pack();
form2sq.setVisible(true);
form2sq.setSize(550,300);
form2sq.setLayout(null);
JTextPane textCar = new JTextPane();
textCar.setText("Номер авто");
textCar.setEditable(false);
textCar.setBounds(10, 20, 130, 20);
form2sq.add(textCar);
car_number_text = new JTextField(car_number, 10);
car_number_text.setBounds(150, 20, 130, 20);
car_number_text.setEditable(false);
form2sq.add(car_number_text);
JButton btnsq= new JButton("Отправить");
btnsq.setSize(100,20);
btnsq.setBounds(150, 180, 130,20);
ActionListener listenerSq = new ActionListenerSq();
btnsq.addActionListener(listenerSq);
form2sq.add(btnsq);
}
public class ActionListenerSq implements ActionListener {
public ActionListenerSq() {
}
public void actionPerformed(ActionEvent car_number) {
String car_number_textSq = car_number_text.getText();
ActionEvent carid = car_number;
String sql = "Є;
try {
PreparedStatement st = con.prepareStatement(sql);
st.setString( 5, car_number_textSq);
st.executeUpdate ();
JFrame result = new JFrame();
result.pack();
result.setVisible(true);
result.setSize(250,150);
result.setLayout(null);
JTextPane resultText = new JTextPane();
resultText.setText("отправлены");
resultText.setEditable(false);
resultText.setBounds(50, 50, 140, 20);
result.add(resultText);
Bot sm= new Bot();
sm.sendMsg();
return_number();
} catch (SQLException e) {
JFrame result = new JFrame();
result.pack();
result.setVisible(true);
result.setSize(250,150);
result.setLayout(null);
result.setBackground(Color.GRAY);
JTextPane resultText = new JTextPane();
resultText.setText("ОШИБКА");
resultText.setEditable(false);
resultText.setBounds(50, 50, 140, 20);
result.add(resultText);
System.out.println("Error " +e);
return;
}
}
}
public String return_number() {
public SString carid = car_number;
return carid;
}
}
}
Сделал как обычную переменную, ругается на No enclosing instance of type Car2q is accessible. Must qualify the allocation with an enclosing instance of type Car2q (e.g. x.new A() where x is an instance of Car2q).
public class Login {
String carid;
public void setCar(String carid) {
this.carid = carid;
}
private Connection con;
private ResultSet rs;
private Connection conQ;
private ResultSet rsQ;
private String car_number2;
public Login() {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("");
con.createStatement();
conQ = DriverManager.getConnection("");
conQ.createStatement();
} catch (Exception e) {
//System.out.println("Error: " +e);
System.out.println("Unable to make connection with DB" );
}
}
public String getQuality() {
String car_number = null;
String report = null;
List<String> car_number_list = new ArrayList<>();
btn_listener c2qa = new btn_listener(carid);
Login lg = new Login();
String id = c2qa.return_number();
lg.setCar(id);
try {
PreparedStatement st = null;
String query2 = "select * FROM car_register WHERE agreement = 1 and car_number = ?";
st = conQ.prepareStatement(query2);
st.setString( 1, car_number2);
rs = st.executeQuery();
while (rs.next()) {
car_number = rs.getString("car_number");
System.out.println(report);
}
} catch (SQLException e) {
e.printStackTrace();
}
return report ;
}
Как правильно туда ее запихнуть, в нужный момент?