14
사용자가 버튼을 클릭하면 적어도 두 개의 JTextField와 두 개의 JLabel이 있어야하는 팝업 양식을 표시하려고하므로 JOptionPane.showInputDialog
을 사용하는 것이 불가능합니다.두 개 이상의 필드가있는 간단한 팝업 자바 양식
사용자가 버튼을 클릭하면 적어도 두 개의 JTextField와 두 개의 JLabel이 있어야하는 팝업 양식을 표시하려고하므로 JOptionPane.showInputDialog
을 사용하는 것이 불가능합니다.두 개 이상의 필드가있는 간단한 팝업 자바 양식
showInputDialog()
또는 showMessageDialog()
과 같이 JOptionPane
방법 중 하나를 고려해야합니다.
부록 : JOptionPane
을 선택하면 표시된 구성 요소의 수가 아니라 모달의 적합성에 더 좌우됩니다. How to Make Dialogs도 참조하십시오.
부록 : @camickr의 의견에서 언급했듯이 에 설명 된 방법 (예 : here)을 사용하여 특정 구성 요소에 포커스를 설정할 수 있습니다.
package gui;
import java.awt.EventQueue;
import java.awt.GridLayout;
import javax.swing.*;
/** @see https://stackoverflow.com/a/3002830/230513 */
class JOptionPaneTest {
private static void display() {
String[] items = {"One", "Two", "Three", "Four", "Five"};
JComboBox<String> combo = new JComboBox<>(items);
JTextField field1 = new JTextField("1234.56");
JTextField field2 = new JTextField("9876.54");
JPanel panel = new JPanel(new GridLayout(0, 1));
panel.add(combo);
panel.add(new JLabel("Field 1:"));
panel.add(field1);
panel.add(new JLabel("Field 2:"));
panel.add(field2);
int result = JOptionPane.showConfirmDialog(null, panel, "Test",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
System.out.println(combo.getSelectedItem()
+ " " + field1.getText()
+ " " + field2.getText());
} else {
System.out.println("Cancelled");
}
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
display();
}
});
}
}
대답 예 간의 초기 혼란에 대해 죄송합니다. – trashgod
어떻게 입력을 검색 할 수 있습니까? – nunos
나는 위에서 정교하고 튜토리얼에 대한 링크를 추가했다. – trashgod