如何将JOptionPane.showConfirmDialog
弹出窗口上的默认焦点从Ok
按钮更改为textfield
?
我的代码:
public String userPassword() {
Box box = Box.createHorizontalBox();
JLabel j1 = new JLabel("Password: ");
box.add(j1);
JPasswordField jpf = new JPasswordField(24);
box.add(jpf);
JOptionPane.showConfirmDialog(null, box, "Enter your password", JOptionPane.OK_CANCEL_OPTION);
char[] input = jpf.getPassword();
String password = String.valueOf(input);
return password;
}
答案 0 :(得分:0)
代替使用#include <gtk/gtk.h>
void print_geometry(GtkWidget* widget, GdkRectangle* geometry)
{
GdkDisplay *dpy = gtk_widget_get_display(widget);
GdkWindow *win = gtk_widget_get_window(widget);
GdkMonitor *monitor = gdk_display_get_monitor_at_window(dpy, win);
gdk_monitor_get_geometry(monitor, geometry);
gint width = geometry->width;
gint height = geometry->height;
g_print("Screen max: %dW X %dH\n", width, height);
gtk_window_set_default_size(GTK_WINDOW(widget), width, height );
}
int main(int argc, char *argv[])
{
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GdkRectangle geometry;
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(window, "realize", G_CALLBACK(print_geometry), &geometry);
gtk_widget_show_all(window);
gtk_main();
}
,可以使用JOptionPane.showConfirmDialog
来创建所需的对话框,如下所示:
JOptionPane
答案 1 :(得分:0)
JOptionPane.showConfirmDialog(...)本身调用 JOptionPane.showOptionDialog(...) 那么您可以像下面一样使用 JOptionPane.showOptionDialog(...)
JOptionPane.showOptionDialog(null,
box,
"My Message Dialog",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null, new Object[]{"Ok", "Cancel"}, box);