JComboBox

Pimon

Grünschnabel
Ich waehle aus zwei JComboBox(en) unterschiedliche Werte aus, aber bei einer bestimmten Kombination soll ein JTextField zur weiteren Eingabe sichtbar werden.
Wie bekomme ich das hin?
 
Hallo!

siehe :
Code:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 * @author      Darimont<br>
 * @version     1.0<br>
 * Date of creation:  08.03.2004<br>
 * File:         ComboTest.java<br>
 * Modifier:     Darimont<br>
 * Revision:     Revision<br>
 * State:        Germany<br>
 */

public class ComboTest extends JFrame{

	private JComboBox box1,box2;
	private DefaultComboBoxModel modbox1, modbox2;
	private JPanel panel;
	private JTextField textf;
	private MySelectActionListener msal;

	public ComboTest(){
		super("comboTest");
		setSize(400,300);
		
		addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent evt){
				setVisible(false);
				dispose();
				System.exit(0);
			}
		});
		
		
		getContentPane().setLayout(new FlowLayout());
		
		msal = new MySelectActionListener();
		
		modbox1 = new DefaultComboBoxModel();
		modbox1.addElement("BoxItem1");
		modbox1.addElement("BoxItem2");
		modbox1.addElement("BoxItem3");
		modbox1.addElement("BoxItem4");
		modbox1.addElement("BoxItem10");
		
		box1 = new JComboBox();
		box1.setModel(modbox1);
		box1.addActionListener(msal);
		
		modbox2 = new DefaultComboBoxModel();
		modbox2.addElement(new Integer(1));
		modbox2.addElement(new Integer(2));
		modbox2.addElement(new Integer(3));
		modbox2.addElement(new Integer(4));
		modbox2.addElement(new Integer(10));		
		
		box2 = new JComboBox();
		box2.setModel(modbox2);
		box2.addActionListener(msal);
		
				
		textf = new JTextField(20);
		textf.setVisible(false);
		
		getContentPane().add(box1);
		getContentPane().add(box2);
		getContentPane().add(textf);
		
		setVisible(true);
	}

	public static void main(String[] args) {
		new ComboTest();
	}
	
	class MySelectActionListener implements ActionListener{

		/* (non-Javadoc)
		 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
		 */
		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
			
			//wenn die beiden Comboboxen zueinader passende werte aufweisen
			//dann Textfeld anzeigen ...
			
			String valBox1 = (String)box1.getSelectedItem();
			String valBox2 = ((Integer)box2.getSelectedItem())String();
			int lenValBox1 = valBox1.length();
			int lenValBox2 = valBox2.length();
			String str = valBox1.substring(lenValBox1 - lenValBox2,lenValBox1);
			if(str.equals(valBox2)){
				textf.setVisible(true);
				validate();
			}else{
				textf.setVisible(false);
			}
			
			
			
		}
		
	}
}

Gruß Tom
 
Super Danke
damits dann aber auch richtig fumktioniert, muss diese Zeile:

String valBox2 = ((Integer)box2.getSelectedItem())String();
so heissen
String valBox2 = ((Integer)box_alpha.getSelectedItem()).toString();
 
Zurück