Trocar fonte da letra selecionada

0 respostas
JamesBond

E ai pessoal blz ?

Como vcs verao no codigo, eu fiz um JTextArea com JScrollPane .. e tambem trocar a fonte da letra ... so que eu nao consigo fazer com que troque apenas aquelas letras selecionadas pelo usuario ... ou seja, eu só consegui fazer com que troque a fonte de todas as letras presentes no text area ... alguem tem alguma ideia de como fazer trocar a fonte da letra, palavra selecionada ?

JPanel p1 = new JPanel();
	JTextArea texto;
	JPanel p2 = new JPanel();
	JRadioButton plain, bold, italic, boldItalic;
	ButtonGroup radioGroup;
	Font plainFont, boldFont, italicFont, biFont;
	
	public Observacoes() {
		
	    JPanel painelCentral = new JPanel(new BorderLayout());
	    JPanel painelInferior = new JPanel(new FlowLayout());
		
	    TitledBorder titulo;
	    titulo = BorderFactory.createTitledBorder(""); 

	    JPanel painelRel = new JPanel();
	    painelRel.setPreferredSize(new Dimension(900, 900));
	    painelRel.setBorder(titulo);
	    
		texto = new JTextArea(45, 70);
		
		texto.setLineWrap(true);
		texto.setWrapStyleWord(true);

		JScrollPane barra = new JScrollPane(texto); //Adiciona Scroll a TextArea
		barra.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		
		p2.add(barra); //Adiciona a Scroll ao painel

	    painelRel.add(p2);
	    
	    painelCentral.add(painelRel,BorderLayout.CENTER);
	    
	    painelCentral.add(painelInferior,BorderLayout.EAST);
	    
	    TitledBorder tituloBot;
	    tituloBot = BorderFactory.createTitledBorder("Fontes");
	    
	    JPanel painelBotao = new JPanel();
	    painelBotao.setPreferredSize(new Dimension(200, 200));
	    painelBotao.setBorder(tituloBot);
	    
	    plain = new JRadioButton("Plain", true);
	    painelBotao.add(plain);
	    
	    bold = new JRadioButton("Bold", false);
	    painelBotao.add(bold);
	    
	    italic = new JRadioButton("Italic", false);
	    painelBotao.add(italic);
	    
	    boldItalic = new JRadioButton("Bold/Italic", false);
	    painelBotao.add(boldItalic);
	    
	    RadioButtonAction act = new RadioButtonAction();
	    plain.addItemListener(act);
	    bold.addItemListener(act);
	    italic.addItemListener(act);
	    boldItalic.addItemListener(act);
	    
	    radioGroup = new ButtonGroup();
	    radioGroup.add(plain);
	    radioGroup.add(bold);
	    radioGroup.add(italic);
	    radioGroup.add(boldItalic);
	    
	    plainFont = new Font("Serif", Font.PLAIN, 14);
	    boldFont = new Font("Serif", Font.BOLD, 14);
	    italicFont = new Font("Serif", Font.ITALIC, 14);
	    biFont = new Font("Serif", Font.BOLD + Font.ITALIC, 14);
	    texto.setFont(plainFont);
	    
	    painelInferior.add(painelBotao);

	    p1.add(painelCentral);
		
	}
	
	private class RadioButtonAction implements ItemListener {
		public void itemStateChanged(ItemEvent e) {
			if(e.getSource() == plain)
				texto.setFont(plainFont);
			else if(e.getSource() == bold)
					texto.setFont(boldFont);
			else if(e.getSource() == italic)
					texto.setFont(italicFont);
			else if(e.getSource() == boldItalic)
					texto.setFont(biFont);
		}
	}
Criado 17 de março de 2008
Respostas 0
Participantes 1