Пример #1
0
    public void init(GameContainer container, StateBasedGame game) throws SlickException {
      indv = new Display(container);
      indv.setSendingGlobalEvents(false);

      final Frame win1 = new Frame("State 2");
      win1.setBounds(200, 205, 200, 100);
      win1.setVisible(true);
      win1.setResizable(false);
      indvWindows.add(win1);
      indv.add(win1);

      ToggleButton button = new ToggleButton("Click");
      button.pack();
      button.setLocation(200, 150);
      button.addActionListener(
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              win1.setResizable(!win1.isResizable());
            }
          });
      indv.add(button);

      Label label = new Label("Use the button to toggle window resizing.");
      label.pack();
      label.setLocation(button.getX(), button.getY() - label.getHeight() - 5);
      label.setOpaque(true);
      label.setBackground(new Color(1f, 1f, 1f, 0.85f));

      indv.add(label);
    }
Пример #2
0
  public void init(GameContainer container) throws SlickException {
    // Sui.setSkin(new WireframeSkin());
    display = new Display(container);
    display.setSendingGlobalEvents(false);
    display.setFocusable(true);

    // setup method names
    Method[] m = Theme.class.getMethods();
    Arrays.sort(
        m,
        new Comparator() {
          public int compare(Object o1, Object o2) {
            return ((Method) o1).getName().compareTo(((Method) o2).getName());
          }
        });
    ArrayList list = new ArrayList(COLORS);
    for (int i = 0; i < m.length; i++) {
      String nameStr = m[i].getName();
      if (nameStr.indexOf("getName") == -1) list.add(nameStr);
    }
    methods = (String[]) list.toArray(new String[list.size()]);

    // dump names
    // for (int i=0;i<methods.length;i++) {
    //    System.out.println("private color
    // "+Character.toLowerCase(methods[i].charAt(3))+methods[i].substring(4)+" =");
    // }

    // dump methods
    // for (int i=0;i<methods.length;i++) {
    //    String var = Character.toLowerCase(methods[i].charAt(3))+methods[i].substring(4);
    //    System.out.println("public Color "+methods[i]+"() { return "+var+"; }");
    // }

    class BorderLabel extends Label {
      public void renderComponent(GUIContext c, Graphics g) {
        super.renderComponent(c, g);
        g.setColor(Color.darkGray);
        g.draw(this.getAbsoluteBounds());
      }
    };

    float startx = 280;
    float starty = 70;

    Container parent = display;
    for (int i = 0; i < labels.length; i++) {
      methodNames[i] = new BorderLabel();
      methodNames[i].setText(methods[i]);
      methodNames[i].setSize(155, 25);
      methodNames[i].setOpaque(true);
      methodNames[i].setLocation(startx, starty + i * (methodNames[i].getHeight() + 5));
      parent.add(methodNames[i]);

      labels[i] = new BorderLabel();
      labels[i].setOpaque(true);
      labels[i].setSize(65, 25);
      labels[i].setLocation(
          startx + methodNames[i].getWidth() + 5, starty + i * (labels[i].getHeight() + 5));
      parent.add(labels[i]);
    }

    Container panel = new Container();

    left = new Button("Previous");
    left.pack();
    left.setRequestFocusEnabled(false);
    left.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            if (currentIndex > 0) {
              currentIndex--;
              setTheme((Theme) themes.get(currentIndex));
              updateButtons();
            }
          }
        });
    panel.add(left);

    right = new Button("Next");
    right.pack();
    right.setRequestFocusEnabled(false);
    right.setX(left.getWidth() + 5);
    right.setHeight(left.getHeight());
    right.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            if (currentIndex < themes.size() - 1) {
              currentIndex++;
              setTheme((Theme) themes.get(currentIndex));
              updateButtons();
            }
          }
        });
    panel.add(right);

    panel.setSize(right.getX() + right.getWidth(), left.getHeight());
    panel.setLocationRelativeTo(display);
    panel.setY(starty - panel.getHeight() - 5);
    display.add(panel);

    nameLabel = new Label("No themes found.");
    nameLabel.pack();
    nameLabel.setLocationRelativeTo(display);
    nameLabel.setY(panel.getY() - nameLabel.getHeight() - 5);
    display.add(nameLabel);

    final CheckBox box = new CheckBox("Show Demo Box");

    demoBox = new DemoFrame();
    demoBox.setLocation(50, 100);
    demoBox
        .getCloseButton()
        .addActionListener(
            new ActionListener() {
              public void actionPerformed(ActionEvent e) {
                box.setSelected(false);
              }
            });
    display.add(demoBox);

    box.pack();
    box.setX(demoBox.getX());
    box.setY(demoBox.getY() - box.getHeight() - 5);
    box.setSelected(true);
    box.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            demoBox.setVisible(box.isSelected());
          }
        });
    box.setRequestFocusEnabled(false);
    display.add(box);

    if (Sui.getSkin() instanceof SimpleSkin) {
      final CheckBox roundBox = new CheckBox("Round Rectangles");
      roundBox.pack();
      roundBox.setSelected(true);
      SimpleSkin.setRoundRectanglesEnabled(roundBox.isSelected());

      roundBox.addActionListener(
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              SimpleSkin.setRoundRectanglesEnabled(roundBox.isSelected());
            }
          });

      box.setWidth(Math.max(roundBox.getWidth(), box.getWidth()));
      roundBox.setWidth(Math.max(roundBox.getWidth(), box.getWidth()));
      roundBox.setLocation(box.getX(), box.getY() - roundBox.getHeight() - 5);
      roundBox.setRequestFocusEnabled(false);
      display.add(roundBox);
    }

    // load up the themes
    populateThemes();

    if (!themes.isEmpty()) {
      setTheme((Theme) themes.get(0));
    }
    updateButtons();
  }