线程等待 JFrame 选择的值
时间: 2024-05-12 10:15:36 浏览: 13
要等待 JFrame 中的某个操作完成,可以使用 Java Swing 中的 modal 对话框。modal 对话框是一种阻塞用户输入的对话框,直到用户做出选择或关闭对话框为止。
可以使用 JOptionPane 类创建一个 modal 对话框,该对话框可以显示一些选项供用户选择,如下所示:
```
String[] options = {"Option 1", "Option 2", "Option 3"};
int choice = JOptionPane.showOptionDialog(frame, "Choose an option", "Title", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
```
这段代码将创建一个包含三个选项的 modal 对话框,标题为 "Title",消息为 "Choose an option"。用户选择一项后,该方法将返回用户的选择(0、1 或 2)。
您可以将此代码放在一个独立的线程中运行,以便在等待用户选择时不会阻塞主线程。当用户做出选择后,您可以使用线程间通信机制将结果传递回主线程,如使用共享变量或消息队列等。
相关问题
JFrame 选择并返回值
要让用户在 JFrame 上选择并返回值,可以使用 JDialog。
以下是一个简单的例子,演示了如何创建一个 JDialog,其中包含一个 JComboBox 和一个“确定”按钮。当用户选择一个选项并点击“确定”按钮时,该选项的值将作为 JDialog 的返回值传递回 JFrame。
```java
import javax.swing.*;
public class Example extends JFrame {
private JComboBox<String> comboBox;
public Example() {
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("Select");
button.addActionListener(e -> {
String[] options = {"Option 1", "Option 2", "Option 3"};
Dialog dialog = new Dialog(this, options);
String selectedOption = dialog.getSelectedOption();
JOptionPane.showMessageDialog(this, "Selected option: " + selectedOption);
});
getContentPane().add(button);
setVisible(true);
}
private class Dialog extends JDialog {
private String selectedOption;
public Dialog(JFrame parent, String[] options) {
super(parent, true);
setSize(200, 100);
setLocationRelativeTo(parent);
comboBox = new JComboBox<>(options);
getContentPane().add(comboBox, "North");
JButton okButton = new JButton("OK");
okButton.addActionListener(e -> {
selectedOption = (String) comboBox.getSelectedItem();
dispose();
});
getContentPane().add(okButton, "South");
setVisible(true);
}
public String getSelectedOption() {
return selectedOption;
}
}
public static void main(String[] args) {
new Example();
}
}
```
在这个例子中,当用户点击“Select”按钮时,会创建一个新的 JDialog。JDialog 包含一个 JComboBox 和一个“确定”按钮。当用户选择一个选项并点击“确定”按钮时,该选项的值将存储在 JDialog 的 selectedOption 变量中,并且 JDialog 将被关闭。
JFrame 然后会弹出一个消息框,显示用户选择的选项。
java jframe 性别选择
您可以在JFrame中添加一个JComboBox或JRadioButton组来实现性别选择。以下是一个简单的示例代码,其中使用JComboBox实现性别选择:
```java
import javax.swing.*;
import java.awt.*;
public class GenderSelection extends JFrame {
private String[] genders = {"Male", "Female", "Others"};
private JComboBox<String> genderComboBox;
public GenderSelection() {
setTitle("Gender Selection");
setLayout(new FlowLayout());
JLabel genderLabel = new JLabel("Select your gender:");
add(genderLabel);
genderComboBox = new JComboBox<>(genders);
add(genderComboBox);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public String getSelectedGender() {
return (String) genderComboBox.getSelectedItem();
}
public static void main(String[] args) {
GenderSelection genderSelection = new GenderSelection();
String selectedGender = genderSelection.getSelectedGender();
System.out.println("Selected gender: " + selectedGender);
}
}
```
您可以在main函数中创建GenderSelection对象,并通过调用getSelectedGender方法来获取用户选择的性别。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)