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

问题描述 投票:0回答:1

我有一组已编译的代码,没有任何错误。该代码应该从本地目录中选择一个图像文件,然后使用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);
    }
}
java image swing jlabel jtextarea
1个回答
0
投票
jtextareaDisplay.add(jLab, 0);

JTextArea仅显示文本,不显示图像。

add(…)方法将无济于事,因为JTextArea不使用布局管理器,因此任何组件的大小均为(0,0),因此无需绘制任何内容。

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

如果您确实要同时显示图像和文本,则需要使用JTextPaneJTextPane支持insertIcon(…)方法。

© www.soinside.com 2019 - 2024. All rights reserved.