在类之间共享变量
问题描述:
我已经在Netbeans(Booking,ConfirmBooking)中创建了2个JFrame,这两个框架都连接到SQL数据库。在Booking类中,用户通过在jtextfield中输入一个数字来选择度假村形式。如果用户按下下一个按钮。课程预订已处理,并且“确认预订”已打开。我想在ConfirmBooking的jtextfield中访问在Booking中输入的变量,以访问用户预订的度假村的名称。在类之间共享变量
预订分类编码,我想访问在类中设置为public int的ID。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String x = jTextFieldID.getText();
ID = Integer.valueOf(x);
String sql = "SELECT RESORT_NAME FROM LouwDataBase.Resorts WHERE ID = "+ ID;
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
try (ResultSet rs = pstmt.executeQuery()) {
if (rs.next()) {
String resortName = rs.getString("RESORT_NAME");
int n = JOptionPane.showOptionDialog(null,
"Do you want to make a booking at "+resortName+"?",
"Confirm booking?",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null,
new String[]{"Yes I do", "No I don't"},"default");
if (n == JOptionPane.YES_OPTION)
{
ConfirmBooking CB = new ConfirmBooking();
dispose();
CB.setLocationRelativeTo(null);
CB.setVisible(true);
}
else if (n == JOptionPane.NO_OPTION)
{
}
}
}
}
catch (SQLException ex)
{
Logger.getLogger(Booking.class.getName()).log(Level.SEVERE, null, ex);
}
}
ConfirmBooking类代码
public void SetUp()
{
UserList();
String sql = "SELECT RESORT_NAME, COST_PER_NIGHT_ZAR FROM LouwDataBase.Resorts WHERE ID = "+ ID;
try (PreparedStatement pstmt = conn.prepareStatement(sql))
{
try (ResultSet rs = pstmt.executeQuery())
{
if (rs.next())
{
String Name1 = rs.getString("RESORT_NAME");
double Price = rs.getDouble("COST_PER_NIGHT_ZAR");
String Rands = Double.toString(Price);
ResortName.setText(Name1);
ResortPrice.setText("R "+Rands);
}
}
}
catch (SQLException ex)
{
Logger.getLogger(Booking.class.getName()).log(Level.SEVERE, null, ex);
}
}
答
,你可以修改了一点ConfirmBooking类,所以你可以通过这个变量的类也许
的构造函数,然后你可以这样做:
if (n == JOptionPane.YES_OPTION) {
ConfirmBooking CB = new ConfirmBooking(ID);
dispose();
CB.setLocationRelativeTo(null);
CB.setVisible(true);
}
您将该ID存储在ConfirmBooking
的成员中并在需要时在setUp方法中检索它!
答
你可以尝试这样的事:
ConfirmBooking CB = new ConfirmBooking();
CB.setResortNumber(resortName);
不能你注入你需要到'ConfirmBooking'构造什么变量?你禁止修改这些类吗? –
不,这是我的学校PAT(实践评估任务)我必须创建自己的课程,并对课程中未学习的编程进行研究。 – Swiper
那么究竟是什么阻止你通过构造函数或某种方法传递变量? –