我有一个复选框,当用户选择它时,应生成一个带有更多信息的对话框,并在用户做出反应时做一些事情.我的代码基本上看起来像这样:
private void onItemStateChanged(java.awt.event.ItemEvent evt) {
System.out.println("STATE CHANGED!");//TODO debug code
if (evt.getStateChange() == ItemEvent.SELECTED) {
int returnVal = JOptionPane.showConfirmDialog(this, "blablatext");
if (returnVal == JOptionPane.OK_OPTION) {
this.field1TF.setText("");
this.field1TF.setEditable(false);
this.field2TF.setText("");
this.filed2TF.setEditable(false);
}else if(returnVal == JOptionPane.NO_OPTION){
this.field1TF.setText("");
this.field1TF.setEditable(false);
this.field2TF.setText("");
this.field2TF.setEditable(false);
}
} else if(evt.getStateChange() == ItemEvent.DESELECTED){
this.field1TF.setEditable(true);
this.field2TF.setEditable(true);
}
}
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,当我点击它时,我的复选框会一直改变状态两次.它以某种方式与JOptionPane.showConfirmDialog有关,因为如果我对它进行评论,它就会按预期工作.我不知道我应该关心的一些简单的事情,或者我需要做些什么才能得到我想要的反应?(用户点击复选框 - >被问到一个问题 - >选择是/否/取消 - >程序相应地行动)
假设我使用以下代码在我的简单swing应用程序中提示错误消息:
JOptionPane.showMessageDialog(null, message, "Error", JOptionPane.ERROR_MESSAGE);
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让用户突出显示文本部分(用于复制/粘贴目的)?
非常感谢.
是否可以为 JOptionPane 对话框中的按钮分配热键和助记符?我希望能够在 JOptionPane 生成的消息对话框中使用选项是、否和取消,按 Y 以点击是按钮,按 N 以点击否按钮并转义以激活转义按钮。同样,在带有“确定”和“取消”按钮的对话框中,我希望能够通过输入和退出来激活它们。
我已经尝试将 JButtons 传递到 JOptionPane 的按钮对象数组中,并且已经设置了助记符。助记符起作用并且按钮在对话框中正确显示,但是,它们在被激活时无法正常工作。最值得注意的是,他们不处理对话框。
将热键和助记符添加到 JOptionPane 对话框的按钮的正确方法是什么?
我想做的就是有一个带有JTextArea而不是JTextField的JOptionPane inputDialog.
我尝试将JTextArea放在Message参数中,就像这样
Object[] inputText = new Object[]{new JLabel("Enter Graph Information"),
newJTextArea("",20,10)};
graphInfo=(String)JOptionPane.showInputDialog(null,
inputText,
"Create Graph",
JOptionPane.PLAIN_MESSAGE,
null,
null,
"");
Run Code Online (Sandbox Code Playgroud)
但它仍然在底部有文本字段,我无法从JTextArea获取文本.有没有办法删除原始文本字段并从jtextarea获取文本或完全替换文本区域的文本字段?我试图避免在可能的情况下进行自定义对话,这似乎"似乎"应该很容易做到的事情?
我想知道我如何从三个输入对话框中做一个messageBox ..
像这样:
JOptionPane.showInputMessageDialog("Enter your FirstName");
JOptionPane.showInputMessageDialog("Enter your MiddleName");
JOptionPane.showInputMessageDialog("Enter your LastName");
Run Code Online (Sandbox Code Playgroud)
但我希望一条消息有三个输入框.
目前我有一个JOptionPane.单击按钮时,我正在执行以下行.
JOptionPane.showInputDialog(this,"Enter your message","Messages",2);
Run Code Online (Sandbox Code Playgroud)
它会打开一个带有文本框的弹出窗口.此文本框可接受大约40/50个字符.实际上我的要求是在这个文本框中取消长消息(最多300个字符),这样就可以了.所以我们想在这个输入对话框中找到一个文本区域?有可能怎么样?有没有更好的解决方案?提前致谢.
这个问题解决了.
我正在开发基于Java Swing的投影,并且应用程序的外观和感觉是完全自定义的.我们试图在整个程序中保持一致的外观,并且默认的Java对话框窗口不一样.
当前问题需要控制阻止对用户提示的调用.与JOptionPane.showConfirmDialog()类似,在这种情况下,静态调用会生成一个窗口,并停止程序流,直到用户选择一个选项.它还返回选项的值.请注意,GUI本身没有逻辑锁定,但用户无法与其余部分进行交互.
int n = JOptionPane.showConfirmDialog(this,
"Are you sure?",
"Confirm"
JOptionPane.YES_NO_OPTION);
Run Code Online (Sandbox Code Playgroud)
我想使用自定义外观和使用字符串复制此功能.理想情况下,我的代码如下所示:
String result = CustomPrompt.showPrompt(this,
"Please enter your name", //Text
"Prompt.", //Title
"John Smith"); //Default
Run Code Online (Sandbox Code Playgroud)
这通常用于密码输入,我理解密码的返回类型不同,但这是一个例子.这可以通过在几个类中使用一系列按钮和事件监听器来完成,但代码的可读性和应用程序的可靠性会降低.
框架将通过NetBeans构建并从那里进行定制.我知道Swing中已存在这样的提示,但它的外观和感觉完全不同.
总结的问题是:如何使用自定义框架以阻止方式提示用户输入.
该问题的解决方案如下:
public class PromptForm extends JDialog
{
transient char[] result;
public char[] getResult()
{
return result;
}
public PromptForm(Frame parent)
{
super(parent, true);
initComponents();
}
public void prompt()
{
this.setVisible(true);
}
public static char[] promptForPassword(Frame parent)
{
PromptForm pf = new PromptForm(parent);
pf.prompt();
return pf.getResult();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent …Run Code Online (Sandbox Code Playgroud) 我正在学习java swing.下面的代码是一个catch块,它处理IOException并显示错误消息.
catch(IOException e)
{
System.out.println("IOException");
JOptionPane.showMessageDialog(null,"File not found",null,
JOptionPane.ERROR_MESSAGE);
}
Run Code Online (Sandbox Code Playgroud)
我想在catch块中声明和自定义我自己的JOptionPane,如下面的代码:
JOptionPane jop=new JOptionPane();
jop.setLayout(new BorderLayout());
JLabel im=new JLabel("Java Technology Dive Log",
new ImageIcon("images/gwhite.gif"),JLabel.CENTER);
jop.add(im,BorderLayout.NORTH);
jop.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
但问题是我不知道如何使它像showMessageDialogue方法那样出现在屏幕上.请帮忙.提前致谢.
我试图将组件添加到JPanel,然后将此面板放入JScrollPane,然后将JScrollPane放入JOptionPane.
问题:只添加了19行组件.有一个for循环确定组件的行数,如果将条件计数器更改为19或更小,则将显示所有这些.
这是问题的SSCCE
import java.awt.Dimension;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class DynamicGroupLayout extends JPanel
{
JButton addRecordButton;
JTextField[] FieldsArray;
JLabel[] LabelsArray;
GroupLayout layout;
JScrollPane scrollPane;
public DynamicGroupLayout()
{
addRecordButton = new JButton("add record");
layout = new GroupLayout(this);
this.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
scrollPane = new JScrollPane(this);
scrollPane.getVerticalScrollBar().setUnitIncrement(16);
scrollPane.setPreferredSize(this.getPreferredSize());
setTextFields();
showDialog();
}
@Override
public Dimension getPreferredSize()
{
return new Dimension(400, 500);
}
private void setTextFields()
{
int num = 30; //If …Run Code Online (Sandbox Code Playgroud) 如何在单击"确定"按钮时添加监听器JOptionPane.INFORMATION_MESSAGE.
我的JOptionPane是:
JOptionPane.showMessageDialog(null, "Your password is: " + password, "Your Password", JOptionPane.INFORMATION_MESSAGE);
Run Code Online (Sandbox Code Playgroud) java ×10
joptionpane ×10
swing ×9
blocking ×1
hotkeys ×1
imageicon ×1
jbutton ×1
jcheckbox ×1
jdialog ×1
jlabel ×1
jscrollpane ×1
mnemonics ×1
mouseevent ×1
swingx ×1