java中如何在JTextArea中添加图片?

方法最好要详细点。... 方法最好要详细点。 展开
 我来答
Eking2000
2012-02-16 · TA获得超过1228个赞
知道小有建树答主
回答量:1471
采纳率:0%
帮助的人:733万
展开全部
JTextPane 是可以做的,

import java.io.File;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class 文本窗格里的组件和图标 extends JFrame {
private JFileChooser chooser = new JFileChooser();
private JTextPane textPane = new JTextPane();

public 文本窗格里的组件和图标() {
Container contentPane = getContentPane();
JMenuBar menuBar = new JMenuBar();
JMenu insertMenu = new JMenu("Insert");
JMenuItem imageItem = new JMenuItem("image"),
chooserItem = new JMenuItem("color chooser");

insertMenu.add(imageItem);
insertMenu.add(chooserItem);

menuBar.add(insertMenu);
setJMenuBar(menuBar);

textPane.setFont(new Font("Serif", Font.ITALIC, 24));

contentPane.add(textPane, BorderLayout.CENTER);

chooserItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JColorChooser chooser = new JColorChooser();
chooser.setMaximumSize(
chooser.getPreferredSize());
textPane.insertComponent(chooser);
}
});
imageItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int option =
chooser.showDialog(文本窗格里的组件和图标.this,"Pick An Image");

if(option == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();

if(file != null) {
textPane.insertIcon(new ImageIcon(
file.getPath()));
}

}
}
});
}
public static void main(String args[]) {
GJApp3.launch(new 文本窗格里的组件和图标(),
"Using JTextPane",300,300,450,300);
}
}
class GJApp3 extends WindowAdapter {
static private JPanel statusArea = new JPanel();
static private JLabel status = new JLabel(" ");

public static void launch(final JFrame f, String title,
final int x, final int y,
final int w, int h) {
f.setTitle(title);
f.setBounds(x,y,w,h);
f.setVisible(true);

statusArea.setBorder(BorderFactory.createEtchedBorder());
statusArea.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
statusArea.add(status);
status.setHorizontalAlignment(JLabel.LEFT);

f.setDefaultCloseOperation(
WindowConstants.DISPOSE_ON_CLOSE);

f.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) {
System.exit(0);
}
});
}
static public JPanel getStatusArea() {
return statusArea;
}
static public void updateStatus(String s) {
status.setText(s);
}
}
百度网友12ee0fd
推荐于2016-06-23 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:1980万
展开全部

JTextArea 对应于 PlainDocument, 不支持 插入图片之类Rich Text。


想插入图片需要使用JTextPane。

    JTextPane textPane = new JTextPane();
    StyledDocument doc = (StyledDocument) textPane.getDocument();

    Style style = doc.addStyle("StyleName", null);
    StyleConstants.setIcon(style, new ImageIcon("imagefile"));

    doc.insertString(doc.getLength(), "ignored text", style);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式