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(“我是兔子”);