Tôi đã tạo một JDialog đơn giản với một nhãn và một nút về cơ bản giống như một hộp thoại thông tin. Vì vậy, trong hộp thoại, có một phương thức display() trong đó tôi gọi setVisible(true) năm lần.
Theo như tôi biết, khi phương thức hiển thị này được gọi, nó chỉ hiển thị hộp thoại một lần, nhưng thực tế nó tạo ra 5 hộp thoại, tại sao lại là 5 hộp thoại?
Chỉnh sửa1: Câu hỏi của tôi giống với câu hỏi này hơn:
nhập java.awt.event.*;nhập java.awt.*;nhập javax.swing.*;
lớp Demo thực hiện ActionListener
{
Khung f;
Nút J b;
Hộp thoại DisplayDialog;
công khai Demo()
{
f = JFrame mới();
f. setSize(200,200);
b = new JButton("Nhấp vào tôi");
f.thêm(b);
hộp thoại = new DisplayDialog();
b.addActionListener(điều này);
f.setVisible(đúng);
}
public void actionPerformed(ActionEvent e)
{
Đối tượng o = e.getSource();
nếu(o==b)
{
dialog.display("Xin chào");
dialog.display("Xin chào");
dialog.display("Xin chào");
dialog.display("Xin chào");
hộp thoại.display("Hello5");
}
}
public static void main(String args[])
{
Bản demo d = bản demo mới();
}
lớp DisplayDialog thực hiện ActionListener
{
JDialog ngày;
Nhãn J;
Nút J b;
Phông chữ myfont;
công khai DisplayDialog()
{
dg = new JDialog(f,"Cảnh báo!",đúng);
dg.setSize(300,150);
l = new JLabel("Tin nhắn");
b = JButton mới("OK");
myfont = new Font("Serif",Font.BOLD,12);
l.setFont(phông chữ của tôi);
dg.add(l);
dg.add(b,"Nam");
dg.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
b.addActionListener(điều này);
}
public void actionPerformed(ActionEvent e)
{
Đối tượng o = e.getSource();
nếu(o==b)
{
dg.setVisible(sai);
}
}
public void display(Chuỗi str)
{
l. setText(chuỗi);
dg.setVisible(đúng);
}
}
}
Chỉnh sửa2: Bây giờ tôi gặp tình huống như thế này trong chương trình của mình, thay vì hiển thị hộp thoại 5 lần, tôi muốn nó hiển thị hộp thoại cuối cùng, tôi có thể làm gì để đạt được điều này?
Ờ, về cơ bản là vậySẽ không hiển thị 5 lần cùng một lúc, chỉ mộtHiển thị 5 lần liên tiếp。
JDialog.setVisible(đúng)
Là thao tác chặn, nó sẽ chặn cho đến khi hộp thoại đóng lại.
Vì vậy, khi bạn đóng nó, một hộp thoại sẽ bật lên với setVisible(đúng)
trên ứng dụng chặn, gọi điện khác serVisible(true)
vân vân.
Tôi là một lập trình viên xuất sắc, rất giỏi!