我需要一个文本弹出,就像你得到的那样JOptionPane.showInputDialog(null, "Text");
只是有多行,比如......
I'm new to java.
I have no background in programming.
I could use some help
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我是来自C#的java的新手,所以我不熟悉java最佳实践.
我有一个主类打开一个JFrame来从用户获取几个输入字符串.当用户单击提交时,GUI应该关闭,主类继续使用输入进行处理.
这是主要类:public class Main {
FInput fInput;
public void main(String[] args) {
if(args.length==0)
{
fInput = new FInput();
fInput.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fInput.pack();
fInput.setVisible(true);
}
else
startProcess(args);
}
public void startProcess(String[] args) {
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
主类将使用此框架从用户获取输入:
public class FInput extends JFrame{
private JTextField txtSourceDirectory;
private JTextField txtTargetDirectory;
private JTextField txtDefectNumber;
private JTextField txtSliceTokens;
private JButton btnStart;
public FInput() {
// Initialize text fields and button
JButton.addActionListener(something);
}
}
Run Code Online (Sandbox Code Playgroud)
在我能找到的所有例子中,听众本身就是一个FMain.但是在这种情况下,我希望Main监听并使用方法startProcess中的输入.
将Main实现ActionListener,并将其传递给FMain构造函数是可行的方法吗?目前我有一个JOptionPane
.单击按钮时,我正在执行以下行.
JOptionPane.showInputDialog(this,"Enter your message","Messages",2);
Run Code Online (Sandbox Code Playgroud)
它会打开一个带有文本框的弹出窗口.此文本框可接受大约40/50个字符.实际上我的要求是在这个文本框中取消长消息(最多300个字符),这样就可以了.所以我们想在这个输入对话框中找到一个文本区域?有可能怎么样?有没有更好的解决方案?提前致谢.
我想将焦点放在一个特定的JTextField上,它作为对象消息传递给JOptionPane.这是我的代码(我希望专注于txt2,但焦点始终在于txt1):
import java.awt.*;
import java.util.*;
import javax.swing.*;
public class TextArea extends JPanel
{
private JTextArea txt1 = new JTextArea();
private JTextArea txt2 = new JTextArea();
public TextArea()
{
setLayout(null);
setPreferredSize(new Dimension(200,100));
txt1.setBounds (20, 20, 220, 20);
txt2.setBounds (20, 45, 220, 20);
txt1.setText("Text Field #1");
txt2.setText("Text Field #2");
add(txt1);
add(txt2);
txt2.requestFocus();
}
private void display()
{
Object[] options = {this};
JOptionPane pane = new JOptionPane();
pane.showOptionDialog(null, null, "Title", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, txt2);
}
public static void main(String[] args)
{
new …
Run Code Online (Sandbox Code Playgroud) 如何使用显示多行JOptionPane.showMessageDialog()
.例如,我在下面发布一个例子.现在,在下面所述的示例中,a1,b1,c1
必须使用" JOptionPane.showMessageDialog()
是否有任何方式在一个窗口中显示所有值"逐个显示值?因为在下面的例子中,三个窗口将一个接一个地出现.
class demo()
{
public static void main(String args[])
{
String a=JOptionPane.showInputDialog(null,"Enter a number");
int a1=Integer.parseInt(a);
String b=JOptionPane.showInputDialog(null,"Enter a number");
int b1=Integer.parseInt(b);
int c=a1+b1;
JOptionPane.showMessageDialog(null,a1);
JOptionPane.showMessageDialog(null,b1);
JOptionPane.showmessageDialog(null,c1);
}
}
Run Code Online (Sandbox Code Playgroud) 是否可以在swing中创建一个JDialog,当单击OK按钮时它将返回一个对象?
例如,"对话框"的文本字段包含组成地址的组件(街道名称,国家/地区等)
单击"确定"按钮时,将返回"地址"对象.
为什么我认为这是可能的,因为这个.但我想要的是像我上面提到的那样.
关于如何完成这一任务的任何指示都将非常有帮助.
我还有空白问题JOptionPane
.基于SO和Java Docs的研究,这显然与不使用它有关EDT
.我的问题是EDT
它及其方法究竟是如何适用的JOptionPane
?例如,终端错误输出清楚地表明JOptionPane
下面没有运行EDT
.特别缺少什么,以及如何Runnable
适应?
import javax.swing.*;
public class PaneDemo
{
public static void main(String[] args)
{
final String[] TEXT ={
//message
"Hello, World!",
//title
"Greeting"};//end TEXT
showMyPane(TEXT);
}//end main
public static void showMyPane(final String[] TEXT)
{
JOptionPane.showMessageDialog(null, TEXT[0], TEXT[1],
JOptionPane.INFORMATION_MESSAGE);
if(!SwingUtilities.isEventDispatchThread())
{
System.err.println("Err: GUI failed to use EDT.");
}//end if(!SwingUtilities.isEventDispatchThread())
}//end showMyPane
}//end class PaneDemo
Run Code Online (Sandbox Code Playgroud)
答案建议添加invokeLater
.然而,这似乎并没有在BlueJ中表现得很好.
isEventDispatchThread()仍然在终端中返回错误.这只是因为它现在在错误的位置?
我想使用swing制作一个向导.我注意到JOptionPane就像向导一样工作,只有输入的数量和组织的方式是有限的.
有没有人知道JOptionPane如何"等待"直到给出所需的输入并且在最后返回值之前按下右键?
有谁知道如何使用JOptionPane,以便可以创建向导的典型cardLayout?
我已经有了一个非常基本的Java Swing程序,但意识到我可以使用一个简单的用户名/密码登录屏幕来限制只有拥有用户名和密码的人访问它.
无论如何,我可以在主方法的开头插入一些代码,这将阻止执行超出它,直到在出现的屏幕上输入用户名和密码?
我正在开发一个程序,显示一个MessageDialog
显示我创建的数组的数据.每行例如:
11327 | 933393 | 2是数组的元素0内部.
11833 | 938393 | 1是数组的元素1内部.
例如假装下面的数字在MessageDialog
:
11327 | 933393 | 2
11833 | 938393
| 111934 | 483393 | 7
我唯一的问题是我每个MessageDialog只能逐个显示数组的每个元素.但我想在一个MessageDialog中显示所有3个元素.
有关如何在一个MessageDialog中显示整个数组的任何提示或提示?:)