有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用JFileChooser和JLabel将图像上载到JTextArea

我有一套我编译过的代码,没有任何错误。代码应该从本地目录中选择一个图像文件,并使用JFileChooser和JLabel上传到JTextArea。但在运行时,选定的图像不会显示

下面是代码片段

JLabel jLab=new JLabel();
private void openActionPerformed(java.awt.event.ActionEvent evt){
    JFileChooser jfc=new JFileChooser();
    if(jfc.showOpenDialog(jMenu1)==JFileChooser.APPROVE_OPTION){
        java.io.File f=jfc.getSelectedFile();
        jLab.setIcon(new ImageIcon(f.toString()));
        jtextareaDisplay.add(jLab, 0);
    }
}

共 (1) 个答案

  1. # 1 楼答案

    jtextareaDisplay.add(jLab, 0);
    

    JTextArea仅用于显示文本,而不是图像

    add(…)方法不会执行任何操作,因为JTextArea不使用布局管理器,因此任何组件的大小都将是(0,0),因此没有任何可绘制的内容

    如果试图为文本区域创建背景,则需要通过覆盖文本区域的paintComponent()进行自定义绘制

    如果您确实希望图像和文本一起显示,则需要使用JTextPaneJTextPane支持insertIcon(…)方法