java gui表单图像不显示对话框消息不工作
我想在我的java gui表单图像不显示对话框消息不工作,java,user-interface,Java,User Interface,我想在我的JFrame中插入一个图像,但它没有显示。图像文件是“a.jpg” 这是我得到的输出 这是我的密码 import java.awt.*; 导入java.awt.event.*; 导入javax.swing.*; 类扩展JFrame { 公开我自己() { 超级(“自我介绍”); setLayout(新的FlowLayout()); JLabel jl=新JLabel(“名称”); JTextField jtf=新的JTextField(“随机名称”,20); jtf.setEn
JFrame
中插入一个图像,但它没有显示。图像文件是“a.jpg”
这是我得到的输出
这是我的密码
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
类扩展JFrame
{
公开我自己()
{
超级(“自我介绍”);
setLayout(新的FlowLayout());
JLabel jl=新JLabel(“名称”);
JTextField jtf=新的JTextField(“随机名称”,20);
jtf.setEnabled(错误);
联合特遣部队后撤阵地(颜色:灰色);
jl.设置垂直对齐(SwingConstants.顶部);
添加(jl);
增补(联合特遣部队);
JLabel jl1=新JLabel(“出生日期”);
JTextField jtf1=新的JTextField(“不是今天”,20);
jtf1.setEnabled(false);
jtf1.立根背景(颜色:灰色);
jl1.设置垂直对齐(旋转恒温器中心);
添加(jl1);
添加(jtf1);
JLabel jl2=新的JLabel(“电子邮件”);
JTextField jtf2=新的JTextField(“thisismyemail@gmail.com",20);
jtf2.setEnabled(假);
jtf2.立根背景(颜色:灰色);
jl2.设置垂直对齐(旋转恒温器底部);
添加(jl2);
添加(jtf2);
ImageIcon ic=新的ImageIcon(“a.jpg”);
JLabel jl3=新JLabel(“我对主题的评论,将进一步更新”,ic,SwingConstants.LEFT);
jl3.setToolTipText(“我是兔子”);
添加(jl3);
JTextField comment1=新的JTextField(20);
增加(评注1);
JTextField comment2=新的JTextField(20);
添加(评注2);
comment1.addActionListener(新ActionListener()
{
字符串c1=comment1.getText();
字符串c2=comment2.getText();
字符串s=“1.”+c1+“2.”+c2;
@凌驾
已执行的公共无效操作(操作事件e){
showMessageDialog(null,s,“我对课程的建议”,JOptionPane.WARNING_MESSAGE);
}
});
comment2.addActionListener(新ActionListener()
{
字符串c1=comment1.getText();
字符串c2=comment2.getText();
字符串s=String.format(“1.+c1+“2.+c2”);
@凌驾
已执行的公共无效操作(操作事件e){
showMessageDialog(null,s,“我对课程的建议”,JOptionPane.WARNING_MESSAGE);
}
});
}
}
Lab3类
{
公共静态void main(字符串[]args)
{
我自己ms=新我自己();
ms.setSize(200300);
ms.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ms.setVisible(真);
}
}
此外,除了图像问题外,我的ActionListener也面临着问题
我希望在完成文本框的输入并按ENTER键后,将其作为输出
但这就是我现在拥有的代码
将类的名称imf
更改为imf
,根据
使用更合适的布局管理器GridBagLayout
适用于包含JLabel
和JTextField
对的表单。指
找不到您的图像文件。根据您的代码,它应该位于当前工作目录中,该目录是此代码返回的值
System.getProperty(“user.dir”)
指
为了使actionPerformed()
方法正确显示comment1
和comment2
中的文本,您需要从方法内部获取文本。指
调用方法而不是setSize()
还可以考虑调用方法
这是我的代码重构版本
导入java.awt.Color;
导入java.awt.GridBagConstraints;
导入java.awt.GridBagLayout;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javax.swing.ImageIcon;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JOptionPane;
导入javax.swing.JTextField;
导入javax.swing.SwingConstants;
公共类Lab3{
公共静态void main(字符串[]args){
我自己ms=新我自己();
ms.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
帕克女士();
ms.setLocationByPlatform(真实);
ms.setVisible(真);
}
}
类扩展JFrame{
公开我自己(){
超级(“自我介绍”);
setLayout(新的GridBagLayout());
GridBagConstraints gbc=新的GridBagConstraints();
gbc.gridx=0;
gbc.gridy=0;
JLabel jl=新JLabel(“名称”);
JTextField jtf=新的JTextField(“随机名称”,20);
jtf.setEnabled(错误);
联合特遣部队后撤阵地(颜色:灰色);
jl.设置垂直对齐(SwingConstants.顶部);
添加(jl、gbc);
gbc.gridx=1;
新增(联合特遣部队、gbc);
gbc.gridx=0;
gbc.gridy=1;
JLabel jl1=新JLabel(“出生日期”);
JTextField jtf1=新的JTextField(“不是今天”,20);
jtf1.setEnabled(false);
jtf1.立根背景(颜色:灰色);
jl1.设置垂直对齐(旋转恒温器中心);
添加(jl1,gbc);
gbc.gridx=1;
添加(jtf1,gbc);
gbc.gridx=0;
gbc.gridy=2;
JLabel jl2=新的JLabel(“电子邮件”);
JTextField jtf2=新的JTextField(“thisismyemail@gmail.com", 20);
jtf2.setEnabled(假);
jtf2.立根背景(颜色:灰色);
jl2.设置垂直对齐(旋转恒温器底部);
添加(jl2,gbc);
gbc.gridx=1;
添加(jtf2,gbc);
gbc.gridx=0;
gbc.gridy=3;
ImageIcon ic=新的ImageIcon(“a.jpg”);
JLabel jl3=新的JLabel(“我对主题的评论将进一步更新”,
ic,
SwingConstants.左);
jl3.setToolTipText(“我是兔子”);