Olá PessoALL! estou com o seguite problema: tenho um JFrame e nele esta inserido um JComboBox com várias opções que serão tratadas em um JPanel (tenho um if no JPanel que irá mostrar uma imagem de acordo com o selecionado no JCombBox no JFrame) como procedo? o que devo fazer no JFrame para que ele possar ser entendido no JPanel e vice-versa?
Olá PessoALL! estou com o seguite problema: tenho um JFrame e nele esta inserido um JComboBox com várias opções que serão tratadas em um JPanel (tenho um if no JPanel que irá mostrar uma imagem de acordo com o selecionado no JCombBox no JFrame) como procedo? o que devo fazer no JFrame para que ele possar ser entendido no JPanel e vice-versa?
[]´s
:thumbup:
Vc deve adicionar um listener,já fez isso ?
dsfextreme
Tem um exemplo no seu diretório java ae ,tenta dar uma olhada nele.Tem o que vc quer ,modificar as figurar à partir de um JComboBox.
Sempre indico este diretório pois nele tem muito exemplo legal , e com código fonte,justamente para consultarmos.
Este é o caminho
C:\Arquivos de programas\Java\jdk1.5.0_06\demo\plugin\jfc\SwingSet2\SwingSet2.html
Troque o diretório para o da sua máquina ae…flw?
Depois coloca aqui se funcionou !
Um abraço.
/* From http://java.sun.com/docs/books/tutorial/index.html */importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;/* * ComboBoxDemo.java is a 1.4 application that uses these additional files: * images/Bird.gif * images/Cat.gif * images/Dog.gif * images/Rabbit.gif * images/Pig.gif */publicclassComboBoxDemoextendsJPanelimplementsActionListener{JLabelpicture;publicComboBoxDemo(){super(newBorderLayout());String[]petStrings={"Bird","Cat","Dog","Rabbit","Pig"};//Create the combo box, select the item at index 4.//Indices start at 0, so 4 specifies the pig.JComboBoxpetList=newJComboBox(petStrings);petList.setSelectedIndex(4);petList.addActionListener(this);//Set up the picture.picture=newJLabel();picture.setFont(picture.getFont().deriveFont(Font.ITALIC));picture.setHorizontalAlignment(JLabel.CENTER);updateLabel(petStrings[petList.getSelectedIndex()]);picture.setBorder(BorderFactory.createEmptyBorder(10,0,0,0));//The preferred size is hard-coded to be the width of the//widest image and the height of the tallest image + the border.//A real program would compute this.picture.setPreferredSize(newDimension(177,122+10));//Lay out the demo.add(petList,BorderLayout.PAGE_START);add(picture,BorderLayout.PAGE_END);setBorder(BorderFactory.createEmptyBorder(20,20,20,20));}/** Listens to the combo box. */publicvoidactionPerformed(ActionEvente){JComboBoxcb=(JComboBox)e.getSource();StringpetName=(String)cb.getSelectedItem();updateLabel(petName);}protectedvoidupdateLabel(Stringname){ImageIconicon=createImageIcon("images/"+name+".gif");picture.setIcon(icon);picture.setToolTipText("A drawing of a "+name.toLowerCase());if(icon!=null){picture.setText(null);}else{picture.setText("Image not found");}}/** Returns an ImageIcon, or null if the path was invalid. */protectedstaticImageIconcreateImageIcon(Stringpath){java.net.URLimgURL=ComboBoxDemo.class.getResource(path);if(imgURL!=null){returnnewImageIcon(imgURL);}else{System.err.println("Couldn't find file: "+path);returnnull;}}/** * Create the GUI and show it. For thread safety, * this method should be invoked from the * event-dispatching thread. */privatestaticvoidcreateAndShowGUI(){//Make sure we have nice window decorations.JFrame.setDefaultLookAndFeelDecorated(true);//Create and set up the window.JFrameframe=newJFrame("ComboBoxDemo");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Create and set up the content pane.JComponentnewContentPane=newComboBoxDemo();newContentPane.setOpaque(true);//content panes must be opaqueframe.setContentPane(newContentPane);//Display the window.frame.pack();frame.setVisible(true);}publicstaticvoidmain(String[]args){//Schedule a job for the event-dispatching thread://creating and showing this application's GUI.javax.swing.SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){createAndShowGUI();}});}}
V
vnsnunes
Kara, eu peguei esse exemplo como base tb, na verdade a modificação é nesse exemplo, veja o código:
publicTesteComboBox(){initComponents();}privatevoidinitComponents(){listanimais=newjavax.swing.JComboBox();painelAnimais=newjavax.swing.JPanel();getContentPane().setLayout(null);setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);listanimais.setModel(newjavax.swing.DefaultComboBoxModel(newString[]{"Escolha um Animal","Gato","Papagaio","Porco","Cachorro","Coelho"}));getContentPane().add(listanimais);listanimais.setBounds(150,20,140,22);//Instancio um novo JPanel[color=red]PainelComboBoxpainelAnimais=newPainelComboBox();//aponto pro JPanel q criei[/color]painelAnimais.setBorder(newjavax.swing.border.LineBorder(newColor(0,0,0)));getContentPane().add(painelAnimais);painelAnimais.setBounds(30,70,330,200);pack();}publicstaticvoidmain(Stringargs[]){java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newTesteComboBox().setVisible(true);}});}// Variables declaration - do not modifyprivatejavax.swing.JComboBoxlistanimais;privatejavax.swing.JPanelpainelAnimais;// End of variables declaration
}
//JPainel
public class PainelComboBox extends javax.swing.JPanel {