我有一个带有组合框和启动按钮的gui。我想要一个开始按钮来做一个动作取决于组合框选择。这是我的组合框代码:
private void jCbxItemStateChanged(java.awt.event.ItemEvent evt) {
if (evt.getStateChange() == ItemEvent.SELECTED) {
Object item = jCbx.getSelectedItem().toString();
Object item1=new Object();
Object item2=new Object();
Object item3=new Object();
if (item.equals("1"))
{
System.out.println("ip 1");
item=item1;
}
if (item.equals("2"))
{
System.out.println("ip 2");
item=item2;
if (item.equals("3"))
{
System.out.println("ip 3");
item=item3;
}
}
}
我想将保存的组合框选项传递给开始按钮并根据用户选择执行操作:
private void btnSubmitActionPerformed(java.awt.event.ActionEvent evt) {
if (evt.getActionCommand().equals("Display Ping")) {
System.out.println("Display ping: ");
pingmain p= new pingmain();
String ip = "ping google.com";
p.runSystemCommand(ip);
//I want to read value from combobox and depending if item1 was choosen i would do
// new String ip ="ping ipExample1", if item2 String ip2="ping ipExample2"
// Pseudocode: if item 1 do ip example 1, if item 2 do ip example 2
GUI_COMPLETE = true;
}
}
提前谢谢。
答案 0 :(得分:0)
您正在测试JButton抛出的事件的价值......
处理JButton事件时,只需访问JCombobox并获取所选值。
或者更好的是,如果所有这些都可以通信:在更改JComboBox上的选择期间,更新String属性,然后在按钮单击时测试并处理它。
在JComboBox事件期间:
myChoosenValue =" ipExemple" + jcbb.getSelectedItem()。toString();
将myChoosenValue设置为类的私有属性
然后,如果它只是一个字符串,你真的不需要在按钮点击上复制你的if语句。另外,测试你的" myChoosenValue",然后用它来完成这个过程。 但只有当你的两个组件在同一个类上使用时才有可能,否则它开始变得更复杂,所以在点击按钮期间使用以下
String value = getJCBB().getSelectedItem().toString();
然后根据需要处理字符串。 getJCBB()应该是一个允许您访问构造的JComboBox的方法:
public JComboBox getJCBB(){
if(jcbb == null){
// Do init here
}
return jcbb;
}
但是你需要jcbb作为属性。
如果需要,总数是这样的:
类UI {
private Map<String,String> ips; // Keys are jcbb values, values are ip your need
private JComboBox jcbb;
public UI(){
initIPS(); // fill here your map data, don't forget to instanciate it as HashMap<>
// Do some layouts putting...
X.add(getJCBB(), BorderLayour.NORTH); // for example
}
public JComboBox getJCBB(){
if(jcbb == null){
jcbb = new JComboBox();
//Add here data
}
return jcbb;
}
// Now here during your process buttin event
String ip = ips.get(getJCBB().getSelectedItem().toString()); // Acess to the ip pointed with the JCBB choice
//Process
}