JTextPane +add MutableAttributeSet to Vector

I have a problem with adding MutableAttributeSet to Vector

for example

Sholud be

V[0] ={bold =true italic =true}

V[1] ={bold =false italic =false}

V[2] ={bold =true italic =false}

it is

V[0] ={bold =true italic =false}

V[1] ={bold =true italic =false}

V[2] ={bold =true italic =false}

last MutableAttributeSet change all vector

-

I try to append form one JTextPane to secode with style

Listen carten and when it is change of style i cut my String

and wont also to add style

Then i will insert this parts of string in style which was written

import java.awt.Color;

import java.awt.Cursor;

import java.awt.Dimension;

import java.awt.Insets;

import java.awt.Rectangle;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.FocusEvent;

import java.awt.event.FocusListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Vector;

import javax.swing.*;

import javax.swing.event.CaretEvent;

import javax.swing.event.CaretListener;

import javax.swing.text.*;

import javax.swing.text.rtf.RTFEditorKit;

publicclass przykextends JFrameimplements ItemListener,FocusListener,ActionListener,

CaretListener{

DefaultStyledDocument doc;

RTFEditorKit kit;

JToggleButton g,g2;

JTextPane textPane2,wyslij;

JButton b;

int start,end,stringStart = 0,stringEnd = 0,j=0;

String all,podziel;

boolean ok=true;

ArrayList listaString =new ArrayList();

//ArrayList listaStyl = new ArrayList();

Vector listaStyl =new Vector();

MutableAttributeSet set,in;

MutableAttributeSet spr;

StyledDocument doc1,doc2;

public przyk(){

super("TextComponentDemo");

this.setLayout(null);

doc =new DefaultStyledDocument();

kit =new RTFEditorKit();

textPane2 =new JTextPane();

textPane2.setCaretPosition(0);

JScrollPane paneScrollPane =new JScrollPane(textPane2);

paneScrollPane.setBounds(10,10,300,300);

paneScrollPane.setVerticalScrollBarPolicy(

JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

paneScrollPane.setPreferredSize(new Dimension(250, 155));

paneScrollPane.setMinimumSize(new Dimension(10, 10));

this.add(paneScrollPane );

wyslij =new JTextPane();

wyslij.setCaretPosition(0);

wyslij.addCaretListener(this);

JScrollPane paneScrollPane1 =new JScrollPane(wyslij);

paneScrollPane1.setBounds(10,320,200,30);

paneScrollPane1.setVerticalScrollBarPolicy(

JScrollPane.VERTICAL_SCROLLBAR_NEVER);

//paneScrollPane1.set

this.add(paneScrollPane1);

/*textPane2.setEditorKit(kit);

textPane2.setDocument(doc);

textPane2.addFocusListener(this);*/

wyslij.setEditorKit(kit);

wyslij.setDocument(doc);

wyslij.addFocusListener(this);

g =new JToggleButton("B");

g.setSize(60,30);

g.setLocation(310,320);

g.setActionCommand("bold");

g.addItemListener(this);

this.add(g);

g2 =new JToggleButton("I");

g2.setSize(60,30);

g2.setLocation(380,320);

g2.setActionCommand("italic");

g2.addItemListener(this);

this.add(g2);

b =new JButton("IA");

b.setSize(60,30);

b.setLocation(230,320);

b.setActionCommand("b");

b.addActionListener(this);

this.add(b);

doc1 = wyslij.getStyledDocument();

doc2 = textPane2.getStyledDocument();

set =new SimpleAttributeSet( );

StyleConstants.setItalic( set,false);

StyleConstants.setBold( set,false);

setAtt( set );

}

publicvoid setAtt(AttributeSet attr)

{

int st = wyslij.getSelectionStart( );

int fn = wyslij.getSelectionEnd( );

if ( !wyslij.hasFocus( ) )

{

st = start;

fn = end;

}

if ( st != fn )

{

doc1.setCharacterAttributes( st, fn - st, attr,false );

}

else

{

in = kit.getInputAttributes( );

in.addAttributes( attr );

}

}

publicstaticvoid main(String[] args){

przyk p =new przyk();

p.setSize(500,400);

p.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

p.setVisible(true);

}

publicvoid itemStateChanged(ItemEvent e){

g = (JToggleButton)e.getSource();

g2 = (JToggleButton)e.getSource();

String a = g.getActionCommand();

String a2 = g2.getActionCommand();

if( a.equals("bold") ){

if( e.getStateChange() == 1){

System.out.println("bold_jest_on");

set =new SimpleAttributeSet( );

StyleConstants.setBold( set,true);

setAtt( set );

wyslij.grabFocus( );

}

elseif( e.getStateChange() == 2){

System.out.println("bold_jest_off");

set =new SimpleAttributeSet( );

StyleConstants.setBold( set,false);

setAtt( set );

wyslij.grabFocus( );

}

}

if( a2.equals("italic") ){

if( e.getStateChange() == 1){

System.out.println("italc_jest_on");

set =new SimpleAttributeSet( );

StyleConstants.setItalic( set,true);

setAtt( set );

wyslij.grabFocus( );

}

elseif( e.getStateChange() == 2){

System.out.println("ilatci_jest_off");

set =new SimpleAttributeSet( );

StyleConstants.setItalic( set,false);

setAtt( set );

wyslij.grabFocus( );

}

}

}

publicvoid focusGained(FocusEvent arg0){

if ( start >= 0 && end >= 0 )

{

if ( wyslij.getCaretPosition( ) == start )

{

wyslij.setCaretPosition( end );

wyslij.moveCaretPosition( start );

}

else

{

wyslij.select( start, end );

}

}

}

publicvoid focusLost(FocusEvent arg0){

start = wyslij.getSelectionStart( );

end = wyslij.getSelectionEnd( );

}

publicvoid actionPerformed(ActionEvent e){

if(e.getActionCommand().equals("b")){

int len = doc1.getLength();

try{

podziel = all.substring(stringStart,doc1.getLength());

listaString.add(podziel);

//listaStyl.add(in.toString());

listaStyl.add(in);

doc1.remove(0,doc1.getLength());

j=0;

for(int i=0;i<listaString.size();i++){

System.out.println(" STYL "+i+" =");

}

for(int i=0 ; i<listaString.size();i++){

doc2.insertString(doc1.getLength(), (String)listaString.get(i)+"\n" , (AttributeSet) listaStyl.get(i));

}

}catch (BadLocationException e1){

// TODO Auto-generated catch block

e1.printStackTrace();

}

/*System.out.println("LISTA = "+listaString.size());

System.out.println("LISTA STYLI= "+listaStyl.size());

for(int i=0;i<listaString.size();i++){

System.out.println(listaStyl.get(i));

}*/

listaString.clear();

stringStart = 0;

listaStyl.clear();

}

}

publicvoid caretUpdate(CaretEvent e){

System.out.println(e.getDot());

try{

all = doc1.getText(0,doc1.getLength());

if(j==0)

{

spr = set;

listaStyl.add(in);

System.out.println(listaStyl.get(0));

}

j++;

if(e.getDot()>=2){

if(spr == set){

System.out.println("row");

}else{

System.out.println(" niew row");

spr = set;

podziel = all.substring(stringStart,doc1.getLength());

stringStart = doc1.getLength();

listaString.add(podziel);

listaStyl.add(in);

System.out.println(listaStyl.get(0));

//listaStyl.getClass().

}

}

}catch (BadLocationException e1){

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

}

>

[14636 byte] By [argola] at [2007-11-27 5:42:55]
# 1
Search for append from one JTextPane to second JTextPane with stylebut can't find and my code is not working as it should
argola at 2007-7-12 15:21:58 > top of Java-index,Desktop,Core GUI APIs...