我已经扩展了jEditorPane,如下所示(减去实例化代码)。但是,当我在对象上设置图像并调用update时,它只会绘制一小部分图像(相当于一行文本的位置)。 somene能告诉我我在这里做错了吗?
公共类JEditorPaneImg扩展了JEditorPane {
private BufferedImage bi = null;
public JEditorPaneImg() {
initComponents();
}
@Override
public void paint(Graphics g) {
super.paint(g);
if (bi != null) {
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(bi, 0, 0, this);
}
}
public void setImage(BufferedImage image){
bi = image;
}
}
答案 0 :(得分:0)
我不明白你在做什么。看起来您正在尝试在编辑器窗格中的文本顶部绘制图像。
首先,你永远不应该调用update()。 Swing将确定何时需要进行绘画。
如果要在编辑器窗格的顶部绘制图像,则无需向编辑器窗格添加自定义绘制。您所要做的就是创建一个JLabel并将ImageIcon添加到标签中。然后将标签添加到编辑器窗格中。请务必使用:
label.setSize( label.getPreferredSize() );
,标签将简单地绘制为编辑器窗格的子组件。
如果您需要更多帮助,请发布显示问题的SSCCE。