所以在我的主要方法的开头,我有一个JOptionPane
:
JFrame frame = new JFrame("Input");
String progName = JOptionPane.showInputDialog(frame, "Name?");
但是,在开始键入之前,我需要手动单击弹出窗口。有什么方法可以使它在我运行该程序后立即自动“选择”弹出窗口,以便在我开始键入时将其显示在文本框中。如果使用JOptionPane
无法做到这一点,那么我可以使用其他替代方法,我只需要考虑上述约束即可获得用户输入的字符串。
答案 0 :(得分:0)
我创建了一个简单的示例,其中询问用户名称的逻辑集中在一个方法中。在应用程序开始时以及每次单击按钮时都会调用此方法。
这样,在应用程序启动时以及每次他/她希望更改输入值时,用户都被迫输入数据。
int* merge(list** heap, int n, int k) {
int* sorted;
node* low;
sorted = (int*)malloc(k * n * sizeof(int));
int i = 0;
while ((low = pick(heap)) != NULL) {
heapify(heap, 0, k);
sorted[i++] = low->val;
free(low);
}
return sorted;
}
请注意在将标签添加到内容窗格后以及每次单击按钮时如何调用getNewTextForLabel(...)方法。
此外,正如VGR正确指出的,不在主应用程序线程内运行任何Swing代码也是一种好习惯。 您可以查看秋千(here's a classic example)的Java教程。
下面是一些在单独的线程上运行框架的示例代码。
void findNextInPreOrder(Node node, int key) {
if (node == null) {
return;
}
if (node.value == key) {
if (node.left != null) {
System.out.print("Next is on left: " + node.left.value);
} else if (node.right != null) {
System.out.print("Next is on right: " + node.right.value);
} else {
System.out.print("There is no next node.");
}
} else {
findNextInPreOrder(node.left, key);
/* then recur on left subtree */
findNextInPreOrder(node.right, key);
/* now recur on right subtree */
}
}