【发布时间】:2019-06-22 10:00:05
【问题描述】:
我是 jdialog 的新手,我一直在搜索,但似乎找不到使用自定义按钮的解决方案。我发现的唯一解决方案是使用他们的内置输入 JDialog。但这并不能解决我的问题。
我正在尝试将数据(在单击保存后从对话框 texfield“hello”传递到父框架 textField)但无法这样做。
有人遇到过同样的问题吗? 有什么帮助吗?
public class dataparse {
String result;
String inputValue;
public void mainFrame() {
JFrame frame = new JFrame(" Parent Frame ");
JPanel center = new JPanel();
JButton enter = new JButton("Enter");
// JLabel data = new JLabel("data is...");
JTextField text = new JTextField();
frame.setSize(400, 400);
center.setLayout(new GridLayout(0, 1));
center.add(text);
center.add(enter);
frame.add(center, BorderLayout.CENTER);
enter.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
confirmDialog();
text.setText(inputValue);
}
});
frame.setVisible(true);
}
private void confirmDialog(){
JTextField output = new JTextField("Hellloooo");
JButton save = new JButton("Save");
JDialog customDialog = new JDialog();
Container pane = customDialog.getContentPane();
pane.setLayout(new GridLayout(0,1));
pane.add(new JLabel("Startubg"));
pane.add(output);
pane.add(save);
customDialog.setSize(300,400);
customDialog.add(output);
customDialog.add(save);
customDialog.setVisible(true);
save.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
result = output.getText();
}
});
}
提前谢谢你:)
例如,我有 2 个类,我希望第二个类从第一个类调用 dialog.dispose()。但我无法调用该方法,任何想法
main.java
public JDialog dialogBox(){
//JDialog dialog = new JDialog(frame, "Date picker", true);
dialogButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
dialog = new JDialog(frame,"Date picker " , true);
DatePicker_Demo picker = new DatePicker_Demo();
dialog.setSize(500, 300);
dialog.setLayout(new GridLayout(0,2));
dialog.add(new DatePicker_Demo().addBtn());
dialog.pack();
dialog.setVisible(true);
}
});
return dialog;
}
second.java
public JButton addBtn(){
JButton btn = new AddBills().exitBtn();
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
new AddBills().dialogBox().dispose();
}
});
return btn;
}
【问题讨论】:
-
在对话框中,您将文本字段的值设置为“结果”变量。但是在
JFrame中,您在text.setText(inputValue);中使用变量inputValue。这是一个错误吗? -
请参阅stackoverflow.com/help/someone-answers。您发布了 38 个问题并接受了一个。你得到的所有〜50个答案都没有帮助吗? Please accept 并为您认为有帮助的答案投票。
标签: java swing jbutton jdialog