- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当用户输入密码并单击“确定”按钮时,密码将被加密并存储在JTextArea
中。这工作正常。但我想在 showConfirmDialog
和 showMessageDialog
弹出窗口中添加自定义 Logo 。我尝试使用以下代码,但自定义图像( Logo )未显示在消息弹出窗口中
public static void main(String[] args) {
Box box = Box.createHorizontalBox();
JLabel label = new JLabel("Enter your password : ");
box.add(label);
JPasswordField passwordField = new JPasswordField(24);
box.add(passwordField);
final ImageIcon icon = new ImageIcon("C:\\Users\\Test\\Internet.png");
int button = JOptionPane.showConfirmDialog(null, box, "Enter your password", JOptionPane.OK_CANCEL_OPTION, JOptionPane.NO_OPTION, icon);
if (button == JOptionPane.OK_OPTION) {
String password = new String(passwordField.getPassword());
String encryptedPassword;
if (password != null && !password.equals("")) {
byte[] bytesEncoded = Base64.encodeBase64(password.getBytes());
JTextArea richTextField = new JTextArea(10, 10);
encryptedPassword = new String(bytesEncoded);
richTextField.setText(encryptedPassword);
richTextField.setOpaque(false);
richTextField.setEditable(false);
JOptionPane.showMessageDialog(null, richTextField);
} else {
JOptionPane.showMessageDialog(null,
"Password cannot be null. Please enter password to encrypt.");
}
}
}<br>
我将 ImageIcon
对象作为参数传递到 JoptionPane.showConfirmDialog
中。但是当我运行它时,我没有看到弹出窗口中显示任何图像。我不确定我在这里做错了什么。
注意:我需要在两个弹出窗口中显示一个自定义图像。 showConfirmDialog
和 showMessageDialog
任何帮助将不胜感激
最佳答案
您的代码完全没问题。我只是在我的环境中运行它并且运行良好。这使我相信您的问题是图片路径。我什至用一个不存在的图像的路径测试了它,并且窗口显示没有显示任何图像。
我只改变了两件事,很明显是图片的路径:
final ImageIcon icon = new ImageIcon("c:\\temp\\poke-ball-png-13_30x30.png");
我从 Free Icons PNG 得到的这张图片
还有 Base64
类,因为没有提及您在哪里使用它,所以我使用 java 类:
import java.util.Base64;
....
byte[] bytesEncoded = Base64.getEncoder().encode(password.getBytes());
因此请确保您的图片 "C:\\Users\\Test\\Internet.png"
确实在磁盘上的那个路径上
关于Java - JoptionPane.ShowConfirmDialog 中的自定义图像不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42855512/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!