我有一组已编译的代码,没有任何错误。该代码应该从本地目录中选择一个图像文件,然后使用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);
}
}
jtextareaDisplay.add(jLab, 0);
JTextArea仅显示文本,不显示图像。
add(…)方法将无济于事,因为JTextArea不使用布局管理器,因此任何组件的大小均为(0,0),因此无需绘制任何内容。
如果您尝试为文本区域创建背景,那么您需要通过覆盖文本区域的paintComponent()来进行自定义绘制。
如果您确实要同时显示图像和文本,则需要使用JTextPane
。 JTextPane
支持insertIcon(…)
方法。