当我单击 JButton 时,我想更改 JDialog 中标签的文本,因为标签位于另一个类上,我不知道如何从框架类访问它。所以我想出了一个检查对话框状态的动作监听器的想法。- 当 JDialog 可见时,检索此数据并将此数据设置为标签。这可能吗?
这是我的房间类的代码。
public void rooms()
{
bh = new ButtonHandler();
presidentialRoom = new JButton[presidentialRoomNo.length];
deluxeRoom = new JButton[deluxeRoomNo.length];
classicRoom = new JButton[classicRoomNo.length];
for(int x = 0;x<classicRoomNo.length;x++){
//classic rooms
ImageIcon imageC = new ImageIcon("C:\\Users\\John\\workspace" +
"\\SystemTest\\src\\Images\\classicRooms.JPG"); // image
classicRoom[x] = new JButton(classicRoomNo[x],imageC);
classicRoom[x].setBackground(Color.WHITE);
classicRoom[x].setBorder(new CompoundBorder(BorderFactory.createEtchedBorder(Color.WHITE,Color.GRAY),
BorderFactory.createEtchedBorder(Color.WHITE,Color.GRAY)));
classicRoom[x].addActionListener(bh);
classicSubPanel.add(classicRoom[x]);
//deluxe rooms
ImageIcon imageD = new ImageIcon("C:\\Users\\John\\workspace" +
"\\SystemTest\\src\\Images\\deluxeRooms.JPG"); // image
deluxeRoom[x] = new JButton(deluxeRoomNo[x],imageD);
deluxeRoom[x].setBackground(Color.WHITE);
deluxeRoom[x].setBorder(new CompoundBorder(BorderFactory.createEtchedBorder(Color.WHITE,Color.GRAY),
BorderFactory.createEtchedBorder(Color.WHITE,Color.GRAY)));
deluxeRoom[x].addActionListener(bh);
deluxeSubPanel.add(deluxeRoom[x]);
//presidential rooms
ImageIcon imageP = new ImageIcon("C:\\Users\\John\\workspace" +
"\\SystemTest\\src\\Images\\presidentialRooms.JPG"); // image
presidentialRoom[x] = new JButton(presidentialRoomNo[x],imageP);
presidentialRoom[x].setBackground(Color.WHITE);
presidentialRoom[x].setBorder(new CompoundBorder(BorderFactory.createEtchedBorder(Color.WHITE,Color.GRAY),
BorderFactory.createEtchedBorder(Color.WHITE,Color.GRAY)));
presidentialRoom[x].addActionListener(bh);
presidentialSubPanel.add(presidentialRoom[x]);
}
}
这里的每个按钮都访问 RoomProfile 类
public class ButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
RoomProfile rooms = new RoomProfile();
room.setVisible(true);
}
}
这是 RoomProfile 中的一段代码:
public void createLabels()
{
labels = new JLabel[topTextLabels.length];
inputLabels = new JLabel[topTextLabels.length];
for(int x = 0; x<topTextLabels.length;x++)
{
labels[x] = new JLabel(topTextLabels[x]);
labels[x].setForeground(Color.WHITE);
inputLabels[x] = new JLabel("test");
inputLabels[x].setForeground(Color.WHITE);
}
}
当单击房间类中的按钮时,我要更改的文本是“ inputLabels []”,我想让用户查看该房间的配置文件。
输入标签将显示来自数据库的数据。