- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是的,我认为通过在组件上使用 .getComponents()
会相对简单,它将返回 JOptionPane
的 JPanel
他们通过使用 JPanel
再次使用该方法来检索 JButton
,但是我遇到了困难。
我想在 JOptionPane
按钮上使用鼠标监听器,以便可以在鼠标悬停时更改按钮的颜色。有没有更简单的方法来实现这一目标?
这是我到目前为止的类(class)..
package rsapp.gui;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
public class RSJPaneComponent extends JOptionPane {
/**
*
*/
private static final long serialVersionUID = 13453253L;
private JOptionPane j=this;
final Color WHITE = Color.WHITE;
public RSJPaneComponent(){
UIManager.put("OptionPane.background",WHITE);
UIManager.put("Panel.background",WHITE);
UIManager.put("Button.background",WHITE);
UIManager.put("Button.foreground",new Color(85,153,187));
UIManager.put("activeCaption", WHITE);
}
protected String initJPaneInput(final JFrame f, final String message){
return j.showInputDialog(f,message);
}
public int generateDialog(int error_code, String title_message, String message, final JFrame f){
return JOptionPane.showConfirmDialog(
f,
message,
"Error "+error_code+": "+title_message,
JOptionPane.YES_NO_OPTION);
}
}
最佳答案
Is there a simpler way of achieving this?
使用JDialog
。长期的经验告诉我,虽然 JOptionPane
是一个功能强大且方便的组件,但一旦需要自定义它,您最好只使用 JDialog
。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
class CustomDialog {
public static void main(String[] args) {
Runnable r = new Runnable() {
public void run() {
JFrame frame = new JFrame("Show Custom Dialog");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,400);
frame.setLocationRelativeTo(null);
final JDialog dialog = new JDialog(frame, "Dialog", true);
JPanel mainGui = new JPanel(new BorderLayout());
mainGui.setBorder(new EmptyBorder(20,20,20,20));
mainGui.add( new JLabel("Contents go here"), BorderLayout.CENTER );
JPanel buttonPanel = new JPanel(new FlowLayout());
mainGui.add(buttonPanel, BorderLayout.SOUTH);
JButton close = new JButton("Close");
close.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent ae) {
dialog.setVisible(false);
}
} );
buttonPanel.add(close);
frame.setVisible(true);
dialog.setContentPane(mainGui);
dialog.pack();
dialog.setLocationRelativeTo(frame);
dialog.setVisible(true);
}
};
SwingUtilities.invokeLater(r);
}
}
<小时/>
<小时/>
请注意,此示例尚未将所有功能内置到 JOptionPane
中。
例如,如果打开 JOptionPane
并且用户按转义键,则对话框将被关闭。您可以使用 KeyListener
或 ActionMap
添加该功能。
关于java - 访问 JOption Pane 的按钮以向其中添加 MouseListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5689773/
我应该制作一个石头、床单和剪刀游戏的程序。它涉及来自 Math.random() 的人类游戏和计算机游戏。它实际上正在工作,但只要我喜欢玩,我就必须一次又一次地重新运行它。所以我决定让它无限,直到输入
import java.util.Random; import java.util.Scanner; import javax.swing.JOptionPane; import java.util.
我不太确定如何问这个问题,但就是这样。请查看我的代码(为了您的方便我将其缩写,并且不用担心它是临时的“Sam”) public class JeopardyGUI_Main11 extends jav
我真的不知道如何使用jsp -Joption。我得到的描述如下, OPTIONS The jps command supports a number of options that modify th
对象类别 public Association(String assoName, String Abbrv, GregorianCalendar formDate, Student president
所以我是 GUI 新手,我有以下代码: import javax.swing.*; public class GUItest { String number = JOptionPane.sho
我正在开发我的第一个项目,它需要打开一个 JOption 窗口以供用户输入。它可以工作,但窗口位于其他所有内容后面,因此我必须最小化编辑器才能输入信息。如何将窗口置于顶部? 最佳答案 我从未见过这种行
我正在使用这本书 Java: how to program, 7th edition .问题是在第 2 章之后它不再给你答案。我从书中制作了一个应用程序,它从用户那里获取了 2 个整数,然后将它们加在
我正在尝试制作一个游戏,一开始,第一部分很好,但是,我无法解决第二个问题,我希望它显示:如果输入"is"(不区分大小写),则显示规则_yes,如果写入其他内容,则显示规则_no。目前,无论我输入什么规
int i=0; int c=0; int a=0; int b=0; String stringy; String input; do { //loo
我想在最后一部分显示变量toPay。 示例我向变量 toPay 输入 0,之后它将再次调用 main(args),然后我将输入 4,但输出是 JOption“To Pay: 28”这是正确的,但在我关
我在使用这两个不同的选项时遇到问题,第一个选项可以很好地打开浏览器以供将来使用,但第二个选项打开浏览器,而不是我想要打开的对话框。另外有人可以告诉我如何使取消按钮取消并且不打开浏览器,提前感谢这是代码
是的,我认为通过在组件上使用 .getComponents() 会相对简单,它将返回 JOptionPane 的 JPanel他们通过使用 JPanel 再次使用该方法来检索 JButton ,但是我
嗨,我是编程新手,我在向程序中添加 IF 语句时遇到了一些麻烦。我正在创建一个模块结果计算器,用户输入他们的考试和类(class)作业的成绩分数,如果用户达到 40%,程序会回复“干得好,你已经通过了
我试图要求用户输入全名,我将从第一个名字和第二个名字中提取第一个字符。我还将询问用户他们的街道地址,我将从该地址中提取住房单元号码。 该计划是让用户输入类似以下内容:John Smith。地址:主街1
下面的示例程序显示了一个带有两个按钮的框架。按下使用 MigLayout 的第二个按钮会导致异常。使用 FlowLayout 的第一个按钮工作得很好。似乎是 MigLayout 中的错误? impor
我在 JMenu(退出)上编写代码,当单击它时,它会打开 JOption Pane 确认消息框,其中包含是/否选项,但当它弹出是/否按钮时,它第一次没有获得焦点,应该单击两次才能工作。 经过挖掘,我意
我是一名优秀的程序员,十分优秀!