2011-11-22 219 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