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

How to upload image to JTextArea using JFileChooser and JLabel

我有一组代码,我编译没有任何错误。该代码应该 select 来自本地目录的图像文件并使用 JFileChooser 和 JLabel 上传到 JTextArea。但是在运行时,图像 selected 没有显示。

下面是代码片段。

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);
    }
}
jtextareaDisplay.add(jLab, 0);

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

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

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

如果您确实希望图片和文字一起显示,那么您需要使用 JTextPaneJTextPane 支持 insertIcon(…) 方法。