在不打开新 JFrame 的情况下从另一个子 JFrame 向 JFrame 发送数据
Sending data to JFrame from another sub JFrame without opening a new JFrame
我正在 java swing 做一个巴士预约系统的项目。我在将数据从一个传递到另一个时遇到问题。
看到我有一个框架,我可以在其中预订座位。通过单击 select 按钮,数据将存储在文本字段中,并将作为 selected 座位发送到主框架。
主框架是
但是我遇到了一个问题,每当我点击 select 按钮时,旧的框架就不会打开。它打开一个新框架。我怎么能解决这个问题。从打开新框架。
架座选择代码为
private void selectbuttonActionPerformed{
String seats = seatstf.gettext();
new Billing(seats).setVisible(true);
this.dispose();
}
并且主框架计费代码是
public Billing(String seats){
initComponents();
This.seatvar = seats;
Seattf.setText(""+seatvar);
}
其中 new Billing(seats).setVisible(true);
打开一个新的 Billing 框架,而不打开文本字段中需要数据的旧框架。
怎么解决的?
使用 new Billing
您可以创建一个框架实例,这当然会打开一个新框架。
将框架保存为实例变量并使用它。
public class SeatFrame extends JFrame {
private Billing parent;
public SeatFrame(Billing parent) {
this.parent = parent;
// TODO init Frame (add Components etc.)
}
...
private void selectbuttonActionPerformed(){
String seats = seatstf.gettext();
parent.setSeats(seats);
parent.setVisible(true);
this.dispose();
}
...
}
计费-class 应如下所示:
...
public Billing(){
initComponents();
}
public void setSeats(String seats){
this.seatvar = seats;
Seattf.setText(seatvar);
}
public void openSeatFrame(){
new SeatFrame(this).setVisible(true);
this.dispose();
}
....
我正在 java swing 做一个巴士预约系统的项目。我在将数据从一个传递到另一个时遇到问题。
看到我有一个框架,我可以在其中预订座位。通过单击 select 按钮,数据将存储在文本字段中,并将作为 selected 座位发送到主框架。
主框架是
但是我遇到了一个问题,每当我点击 select 按钮时,旧的框架就不会打开。它打开一个新框架。我怎么能解决这个问题。从打开新框架。
架座选择代码为
private void selectbuttonActionPerformed{
String seats = seatstf.gettext();
new Billing(seats).setVisible(true);
this.dispose();
}
并且主框架计费代码是
public Billing(String seats){
initComponents();
This.seatvar = seats;
Seattf.setText(""+seatvar);
}
其中 new Billing(seats).setVisible(true);
打开一个新的 Billing 框架,而不打开文本字段中需要数据的旧框架。
怎么解决的?
使用 new Billing
您可以创建一个框架实例,这当然会打开一个新框架。
将框架保存为实例变量并使用它。
public class SeatFrame extends JFrame {
private Billing parent;
public SeatFrame(Billing parent) {
this.parent = parent;
// TODO init Frame (add Components etc.)
}
...
private void selectbuttonActionPerformed(){
String seats = seatstf.gettext();
parent.setSeats(seats);
parent.setVisible(true);
this.dispose();
}
...
}
计费-class 应如下所示:
...
public Billing(){
initComponents();
}
public void setSeats(String seats){
this.seatvar = seats;
Seattf.setText(seatvar);
}
public void openSeatFrame(){
new SeatFrame(this).setVisible(true);
this.dispose();
}
....