如何使用 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() 来进行自定义绘制。
如果您确实希望图片和文字一起显示,那么您需要使用 JTextPane
。 JTextPane
支持 insertIcon(…)
方法。
我有一组代码,我编译没有任何错误。该代码应该 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() 来进行自定义绘制。
如果您确实希望图片和文字一起显示,那么您需要使用 JTextPane
。 JTextPane
支持 insertIcon(…)
方法。