2013-03-31 21 views
0

我希望我的組合框中的每個選項都有一些與我的應用程序不同的選項。窗口:不同的按鈕,表格,文本框等Java:comboBox,組合框中每個選項的不同表格

我想最好的方法是做一個「開關」,但我真的不知道該在開關的測試區域放什麼。

package tema3; 

import java.awt.BorderLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JComboBox; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

public class Interface { 

    public static void main(String[] args) { 

     new Interface(); 
    } 

    public Interface() { 

     JFrame guiFrame = new JFrame(); 

     guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     guiFrame.setTitle("Tema3"); 
     guiFrame.setSize(1200, 600); 

     guiFrame.setLocationRelativeTo(null); // seteaza centrat 

     String[] tableOptions = { "OPDept", "Order", "OrderItems", "Product", 
       "Warehouse", "Customer" }; 
     // pentru combo box 

     final JPanel comboPanel = new JPanel(); 
     JLabel comboLbl = new JLabel("Tabele:"); 
     JComboBox tables = new JComboBox(tableOptions); 

     comboPanel.add(comboLbl); 
     comboPanel.add(tables); 

     tables.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent event) { 

       comboPanel.setVisible(comboPanel.isVisible()); 

       switch (???what to insert here???) { 

       case "Order": { 
        System.out.println("11111"); 
        break; 
       } 

       case "Product": { 
        System.out.println("2222"); 
        break; 
       } 

        default: { 
         System.out.print("sd"); 
         break; 
        } 
       } 

      } 
     }); 

     guiFrame.add(comboPanel, BorderLayout.NORTH); 
     guiFrame.add(tables, BorderLayout.SOUTH); 

     guiFrame.setVisible(true); 



    } 
} 

感謝, 德拉戈什

回答

1

你可以使用方法getSelectedItem獲得當前選擇的項目:

switch ((String)tables.getSelectedItem()) { ... } 

注意:您必須將其轉換爲String以便在switch語句中使用它。

+0

感謝:D工作像一個魅力 –

0

假設你正在使用Java7你可以寫如下:

String s = (String)tables.getSelectedItem(); 
       switch (s) { 
0

,如果你不使用Java7 +,所以你不能開關

這樣你就可以將其轉換爲if(){}.. else{}

就像是:

String s = (String) tables.getSelectedItem(); 
if (s.equals("Order")) { 
    System.out.println("11111111"); 
    } else if (s.equals("Product")) { 
     System.out.println("2222222"); 
    } else { 
     System.out.print("sd"); 
    } 

Oracle tutorial : 在Java SE 7及更高版本中,您可以在switch語句的表達式中使用一個String對象。

相關問題