在Jtextpane中添加图片,添一张图片可以.第二张没显示了
package com.softfz.weekend.messages;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
import java.awt.Label;
import java.io.OutputStream;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.Document;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
public class MessagePanel extends JPanel{
private JTextPane Message = new JTextPane();
private JScrollPane ScrollPane ;
private SimpleAttributeSet attrset = new SimpleAttributeSet();
public MessagePanel(int isedit){
ScrollPane = new JScrollPane(this,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
ScrollPane.setSize(250,100);
//Message.setAutoscrolls(true);
this.setLayout(new BorderLayout());
this.add(Message);
this.setSize(250,100);
if(isedit==0)
Message.setEditable(false);
if(isedit==1)
Message.setEditable(true);
}
public MessagePanel(){}
//添加文字
public void insertStr(String text,AttributeSet attrset,int n){
String ntext = null;
int ComLenght = 0;
if(n==0)
ntext=text+"\n";
if(n==1)
ntext=text;
Document docs=Message.getDocument();
try{
docs.insertString(docs.getLength(),ntext,attrset);
for (int i = 0;i > Message.getComponentCount();i++)
{
ComLenght = ComLenght+Message.getComponents()[i].getWidth();
}
Message.select(text.length()+ComLenght,text.length()+ComLenght+1);
}catch(BadLocationException ble){
///System.out.println("BadLocationException:"+ble);
}
}
//添加图片//
public void addImg(ImageIcon imagefile)
{
Message.insertComponent(new JLabel(imagefile));
//Message.insertIcon(imagefile);
}
//以什么颜色添加 public void setColorFont(String str,int n,int x,String font,Color color){
StyleConstants.setForeground(attrset,color);
setFontsize(x,font);
insertStr(str,attrset,n);
}
public void setColorFont(String txt,int n)
{
StyleConstants.setForeground(attrset,Color.BLACK);
setFontsize(12,"宋体");
insertStr(txt,attrset,n);
}// 设置字体样式
public void setFontsize(int x,String font){
StyleConstants.setFontSize(attrset,x);
StyleConstants.setFontFamily(attrset,font);
}
public static void main(String[] args) {
JFrame f= new JFrame();
MessagePanel mm = new MessagePanel(1);
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLACK);
System.out.println(mm.getMessage().getSelectionStart());
mm.addImg(new ImageIcon("images/1.jpg"));
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLUE);
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLUE);
mm.addImg(new ImageIcon("images/1.jpg"));
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.GRAY);
System.out.println(mm.getMessage().getSelectionStart());
//mm.addText("sjkskjkj");
f.getContentPane().add(mm.getScrollPane());
f.pack();
f.setVisible(true);
}public JTextPane getMessage() {
return Message;
}public void setMessage(JTextPane message) {
Message = message;
}public JScrollPane getScrollPane() {
return ScrollPane;
}public void setScrollPane(JScrollPane scrollPane) {
ScrollPane = scrollPane;
}}
package com.softfz.weekend.messages;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
import java.awt.Label;
import java.io.OutputStream;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.Document;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
public class MessagePanel extends JPanel{
private JTextPane Message = new JTextPane();
private JScrollPane ScrollPane ;
private SimpleAttributeSet attrset = new SimpleAttributeSet();
public MessagePanel(int isedit){
ScrollPane = new JScrollPane(this,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
ScrollPane.setSize(250,100);
//Message.setAutoscrolls(true);
this.setLayout(new BorderLayout());
this.add(Message);
this.setSize(250,100);
if(isedit==0)
Message.setEditable(false);
if(isedit==1)
Message.setEditable(true);
}
public MessagePanel(){}
//添加文字
public void insertStr(String text,AttributeSet attrset,int n){
String ntext = null;
int ComLenght = 0;
if(n==0)
ntext=text+"\n";
if(n==1)
ntext=text;
Document docs=Message.getDocument();
try{
docs.insertString(docs.getLength(),ntext,attrset);
for (int i = 0;i > Message.getComponentCount();i++)
{
ComLenght = ComLenght+Message.getComponents()[i].getWidth();
}
Message.select(text.length()+ComLenght,text.length()+ComLenght+1);
}catch(BadLocationException ble){
///System.out.println("BadLocationException:"+ble);
}
}
//添加图片//
public void addImg(ImageIcon imagefile)
{
Message.insertComponent(new JLabel(imagefile));
//Message.insertIcon(imagefile);
}
//以什么颜色添加 public void setColorFont(String str,int n,int x,String font,Color color){
StyleConstants.setForeground(attrset,color);
setFontsize(x,font);
insertStr(str,attrset,n);
}
public void setColorFont(String txt,int n)
{
StyleConstants.setForeground(attrset,Color.BLACK);
setFontsize(12,"宋体");
insertStr(txt,attrset,n);
}// 设置字体样式
public void setFontsize(int x,String font){
StyleConstants.setFontSize(attrset,x);
StyleConstants.setFontFamily(attrset,font);
}
public static void main(String[] args) {
JFrame f= new JFrame();
MessagePanel mm = new MessagePanel(1);
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLACK);
System.out.println(mm.getMessage().getSelectionStart());
mm.addImg(new ImageIcon("images/1.jpg"));
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLUE);
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLUE);
mm.addImg(new ImageIcon("images/1.jpg"));
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.GRAY);
System.out.println(mm.getMessage().getSelectionStart());
//mm.addText("sjkskjkj");
f.getContentPane().add(mm.getScrollPane());
f.pack();
f.setVisible(true);
}public JTextPane getMessage() {
return Message;
}public void setMessage(JTextPane message) {
Message = message;
}public JScrollPane getScrollPane() {
return ScrollPane;
}public void setScrollPane(JScrollPane scrollPane) {
ScrollPane = scrollPane;
}}
package com.softfz.weekend.messages;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
import java.awt.Label;
import java.io.OutputStream;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.Document;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
public class MessagePanel extends JPanel{
private JTextPane Message = new JTextPane();
private JScrollPane ScrollPane ;
private SimpleAttributeSet attrset = new SimpleAttributeSet();
private int ComLenght = 0;
public MessagePanel(int isedit){
ScrollPane = new JScrollPane(this,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
ScrollPane.setSize(250,100);
//Message.setAutoscrolls(true);
this.setLayout(new BorderLayout());
this.add(Message);
this.setSize(250,100);
if(isedit==0)
Message.setEditable(false);
if(isedit==1)
Message.setEditable(true);
}
public MessagePanel(){}
//添加文字
public void insertStr(String text,AttributeSet attrset,int n){
String ntext = null;
if(n==0)
ntext=text+"\n";
if(n==1)
ntext=text;
Document docs=Message.getDocument();
try{
docs.insertString(docs.getLength(),ntext,attrset);
for (int i = 0;i > Message.getComponentCount();i++)
{
ComLenght = ComLenght+Message.getComponents()[i].getWidth();
}
Message.select(text.length()+ComLenght,text.length()+ComLenght+1);
}catch(BadLocationException ble){
///System.out.println("BadLocationException:"+ble);
}
}
//添加图片//
public void addImg(ImageIcon imagefile)
{
for (int i = 0;i > Message.getComponentCount();i++)
{
ComLenght = ComLenght+Message.getComponents()[i].getWidth();
}
Message.select(Message.getSelectionEnd()+ComLenght,Message.getSelectionEnd()+ComLenght);
Message.insertComponent(new JLabel(imagefile));
}
//以什么颜色添加 public void setColorFont(String str,int n,int x,String font,Color color){
StyleConstants.setForeground(attrset,color);
setFontsize(x,font);
insertStr(str,attrset,n);
}
public void setColorFont(String txt,int n)
{
StyleConstants.setForeground(attrset,Color.BLACK);
setFontsize(12,"宋体");
insertStr(txt,attrset,n);
}// 设置字体样式
public void setFontsize(int x,String font){
StyleConstants.setFontSize(attrset,x);
StyleConstants.setFontFamily(attrset,font);
}
public static void main(String[] args) {
JFrame f= new JFrame();
MessagePanel mm = new MessagePanel(1);
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLACK);
System.out.println(mm.getMessage().getSelectionStart());
mm.addImg(new ImageIcon("images/1.jpg"));
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLUE);
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLUE);
mm.addImg(new ImageIcon("images/1.jpg"));
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.GRAY);
mm.addImg(new ImageIcon("images/1.jpg"));
mm.addImg(new ImageIcon("images/1.jpg"));
System.out.println(mm.getMessage().getSelectionStart());
f.getContentPane().add(mm.getScrollPane());
f.pack();
f.setVisible(true);
}public JTextPane getMessage() {
return Message;
}public void setMessage(JTextPane message) {
Message = message;
}public JScrollPane getScrollPane() {
return ScrollPane;
}public void setScrollPane(JScrollPane scrollPane) {
ScrollPane = scrollPane;
}}
import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
import java.awt.Label;
import java.io.OutputStream;import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.Document;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
public class MessagePanel extends JPanel{
private JTextPane Message = new JTextPane();
private JScrollPane ScrollPane ;
private SimpleAttributeSet attrset = new SimpleAttributeSet();
public MessagePanel(int isedit){
ScrollPane = new JScrollPane(this,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
ScrollPane.setSize(250,100);
//Message.setAutoscrolls(true);
this.setLayout(new BorderLayout());
this.add(Message);
this.setSize(250,100);
if(isedit==0)
Message.setEditable(false);
if(isedit==1)
Message.setEditable(true);
}
public MessagePanel(){}
//添加文字
public void insertStr(String text,AttributeSet attrset,int n){
String ntext = null;
int ComLenght = 0;
if(n==0)
ntext=text+"\n";
if(n==1)
ntext=text;
Document docs=Message.getDocument();
try{
docs.insertString(docs.getLength(),ntext,attrset);
Message.setSelectionStart(Message.getText().length()+ntext.length()+1);
}catch(BadLocationException ble){
///System.out.println("BadLocationException:"+ble);
}
}
//添加图片//
public void addImg(ImageIcon imagefile)
{
int ComLenght = 0;
Message.insertComponent(new JLabel(imagefile));
}
//以什么颜色添加 public void setColorFont(String str,int n,int x,String font,Color color){
StyleConstants.setForeground(attrset,color);
setFontsize(x,font);
insertStr(str,attrset,n);
}
public void setColorFont(String txt,int n)
{
StyleConstants.setForeground(attrset,Color.BLACK);
setFontsize(12,"宋体");
insertStr(txt,attrset,n);
}// 设置字体样式
public void setFontsize(int x,String font){
StyleConstants.setFontSize(attrset,x);
StyleConstants.setFontFamily(attrset,font);
}
public static void main(String[] args) {
JFrame f= new JFrame();
MessagePanel mm = new MessagePanel(1);
/*mm.addImg(new ImageIcon("images/1.jpg"));
mm.addImg(new ImageIcon("images/1.jpg"));
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLACK);*/
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLACK);
System.out.println(mm.getMessage().getSelectionStart());
mm.addImg(new ImageIcon("images/1.jpg"));
System.out.println(mm.getMessage().getSelectionStart());
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLUE);
System.out.println(mm.getMessage().getSelectionStart());
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLUE);
mm.addImg(new ImageIcon("images/1.jpg"));
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.GRAY);
mm.addImg(new ImageIcon("images/1.jpg"));
mm.addImg(new ImageIcon("images/1.jpg"));
mm.setColorFont("sjkskjkj",0,12,"宋体",Color.BLUE);
System.out.println(mm.getMessage().getSelectionStart());
f.getContentPane().add(mm.getScrollPane());
f.pack();
f.setVisible(true);
}public JTextPane getMessage() {
return Message;
}public void setMessage(JTextPane message) {
Message = message;
}public JScrollPane getScrollPane() {
return ScrollPane;
}public void setScrollPane(JScrollPane scrollPane) {
ScrollPane = scrollPane;
}}