2011-11-22 162 views
2

我正在尋找一個解決方案(庫)來生成和/或顯示使用Java(和Swing/JFace)的動態座位表。Java:劇院座位圖

應該有可能爲單個座位添加顏色和定義事件。 有沒有準備好使用庫或標準程序?

在此先感謝

回答

3

有沒有需要尋找一些解決方案或庫(確保谷歌可以返回該),但可以通過工具JToggleButton中&圖標(或顏色),非常賽普爾例如

如此easilly完成

enter image description here

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class TheaterJToggle { 

    private int rows = 6; 
    private int columns = 8; 
    private Icon res = (UIManager.getIcon("OptionPane.errorIcon")); 

    public TheaterJToggle() { 
     JPanel panel = new JPanel(new GridLayout(columns, rows)); 
     for (int row = 0; row < rows; row++) { 
      for (int column = 0; column < columns; column++) { 
       final JToggleButton button = new JToggleButton("Row " + row + " seat " + column); 
       button.addActionListener(new ActionListener() { 

        @Override 
        public void actionPerformed(ActionEvent actionEvent) { 
         AbstractButton abstractButton = (AbstractButton) actionEvent.getSource(); 
         boolean selected = abstractButton.getModel().isSelected(); 
         if (selected) { 
          button.setIcon(res); 
         } else { 
          button.setIcon(null); 
         } 
        } 
       }); 
       panel.add(button); 
      } 
     } 
     final JFrame frame = new JFrame("JToggleButton Test"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.add(panel); 
     frame.pack(); 
     frame.setLocation(150, 150); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       TheaterJToggle theaterJToggle = new TheaterJToggle(); 
      } 
     }); 
    } 
} 
+0

+1但有可能不同的行有不同的座位數。 – StanislavL

+0

hmmmm right我看到我在'JPanel(new GridLayout(columns,rows))中通過錯誤切換參數;'' – mKorbel