Inserir uma imagem [RESOLVIDO]

4 respostas
AITech_IX

Boa noite pessoal!!!!

Por favor, tenho o código abaixo:

//mudando a aparencia da GUI
import java.awt.*;
import java.awt.event.*;
import java.io.File;

import javax.imageio.ImageIO;
import javax.swing.*;
//import com.sun.java.util.jar.pack.Package.File;


public class TesteLookAndFeel extends JFrame {
	private String strings[] = {"Barras", "Linha", "Candles"};
	private String strings2[] = {"1 min", "15 min", "60 min"};
	private UIManager.LookAndFeelInfo aparencia[];
	private JRadioButton radio[];
	private ButtonGroup grupo;
	private JButton botao;
	private JLabel rotulo;
	private JLabel rotulo2;
	private JComboBox comboBox;
	private JTextField campo;
	private JTextArea texto;
	private Image imagem; 
	
	//Configura a GUI
	public TesteLookAndFeel()
	{
		super("Gráfico de ações"); //Exibe título na Barra de Título
		
		Container container = getContentPane();
		//Configura painel para a região NORTH de BorderLayout
		JPanel painelNorte = new JPanel();
		painelNorte.setLayout(new GridLayout(2,2,5,5));
		
		//Configura o rótulo para o painel NORTH
		rotulo = new JLabel("Gráfico aqui!");
		rotulo.setVerticalTextPosition (SwingConstants.CENTER);
		container.add(rotulo);
		
		//configura o batao para o painel NORTH
		campo = new JTextField("Papel");
		painelNorte.add(campo);
		
		botao = new JButton("Analisar");
	    botao.addActionListener(
	    	      new ActionListener(){
	    	        public void actionPerformed(ActionEvent e){
	     	          JOptionPane.showMessageDialog(null,"Serviço Indisponível");
	    	        }
	    	      }
	    	    );
		painelNorte.add(botao);
				
		//configura caixa de combinacao para o painel NORTH
		rotulo2 = new JLabel("Tipo de Gráfico");
		painelNorte.add(rotulo2);
		comboBox = new JComboBox(strings);
		painelNorte.add(comboBox);
		
		//anexa o painelNorte à região NORTH do painel de conteúdo
		container.add(painelNorte, BorderLayout.NORTH);
		
		//cria array para os botões de opção
		radio = new JRadioButton[3];
		
		//configura painel para o região SOUTH de BorderLayout
		JPanel painelSul = new JPanel();
		painelSul.setLayout(new GridLayout(1,3));
		
		//configura botões de opção para o painelSul
		radio = new JRadioButton[3];
			radio[0] = new JRadioButton("1 min");
			radio[1] = new JRadioButton("15 min");
			radio[2] = new JRadioButton("60 min");
		
		grupo = new ButtonGroup(); //implementa exclusão mútua
		TratadorDeItens trat = new TratadorDeItens();
		
		for(int count=0; count<radio.length; count++){
			radio[count].addItemListener(trat);
			grupo.add(radio[count]);
			painelSul.add(radio[count]);
		}
		
		// anexa o painelSul à região SOUTH do painel de conteúdo
		container.add(painelSul, BorderLayout.SOUTH);
		
		// obtém informações sobre a aparência e
		// comportamento instalado
		aparencia = UIManager.getInstalledLookAndFeels();
		
		setSize(400,300); //dimensiona a janela
		setLocation(300, 100);
		setVisible(true); //torna-a visível
		radio[0].setSelected(true);
	}
	
	//usa UIManger para mudar a aparência e comportamento da GUI
	private void mudeTheLookAndFeel(int valor){
		
		//muda aparência e comportamento
		try{
			UIManager.setLookAndFeel(aparencia[valor].getClassName());
			SwingUtilities.updateComponentTreeUI(this);
		}
		
		//processo problemas com a mundaça da aparencia
		// e do comportamento
		catch(Exception exception){
			exception.printStackTrace();
		}
	}

	//executa a aplicacao
	public static void main(String args[]){
		TesteLookAndFeel aplicacao = new TesteLookAndFeel();
		aplicacao.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	
	//classe interna privativa para tratar eventos dos botoes de opcao
	private class TratadorDeItens implements ItemListener{
		
		//processa a selecao de aparencia e comportamento
		//feita pelo usuário
		public void itemStateChanged(ItemEvent evento){
			for(int count = 0; count<radio.length; count++){
				if(radio[count].isSelected()){
					rotulo.setText("Selecionado o Gráfico de  "+ strings2[count]);
			        //comboBox.setSelectedIndex(count);
					//mudeTheLookAndFeel(count);
				}
			}
		}
	}
}

Quanto eu clico em um dos 3 radioButton, gostaria de inseria uma imagem no lugar do texto que fiz aparecer (no caso, uma queria uma figura diferente para cada radioButton)...como eu poderia fazer isso?
Agradeço a ajuda pessoal...já encontrei algumas coisas sobre inserir figuras aqui mesmo no fórum, mas não foram muito conclusivas para mim!

Obrigado!!

4 Respostas

atilaraphael

Olá,

Se você quer apenas colocar a figura, coloca assim:

//Neste caso a figura estaria no mesmo pacote desta classe
rotulo.setIcon(new ImageIcon(getClass().getResource("nome da figura")));
AITech_IX

atilaraphael:
Olá,

Se você quer apenas colocar a figura, coloca assim:

//Neste caso a figura estaria no mesmo pacote desta classe rotulo.setIcon(new ImageIcon(getClass().getResource("nome da figura")));

Mas “o que recebe” a figura? o meu “rotulo” quando é feito o rotulo.setIcon…??

atilaraphael

Isso, seu rótulo é um JLabel, e este aceita uma figura e um texto.
ou
Você pode colocar a figura em outro JLabel, basta trocar o nome rotulo pelo nome do outro JLabel.

AITech_IX

Perfeito Atila…funcionou blz…e até com variações :lol:

Muito obrigado!!!

Criado 29 de agosto de 2010
Ultima resposta 31 de ago. de 2010
Respostas 4
Participantes 2