0

ボタン、テキスト ボックス、単語、プログレス バーなどを、既存のもの (この例では JLabel) の上に配置できるかどうかを知りたいです。以下は、私が作成した下塗りフレームの画像と、この下塗りフレームに関連付けられたコードのスニペットです。

(私は10の評判を持っていないので、ここに写真へのリンクがあります)

http://prntscr.com/15516f

Map.setTitle("Map");
Map.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Map.setUndecorated(true);
Map.setBackground(new Color(0,0,0,0));
Map.setLayout(new FlowLayout());
JLabel Background = new JLabel(new ImageIcon(getClass().getResource("Map.png")));
  Background.addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent e) {
      initialClick = e.getPoint();
      getComponentAt(initialClick);
    }
  });
  Background.addMouseMotionListener(new MouseMotionAdapter() {
    @Override
    public void mouseDragged(MouseEvent e) {
      // get location of Window
      int thisX = Map.getLocation().x;
      int thisY = Map.getLocation().y;
      // Determine how much the mouse moved since the initial click
      int xMoved = (thisX + e.getX()) - (thisX + initialClick.x);
      int yMoved = (thisY + e.getY()) - (thisY + initialClick.y);
      // Move window to this position
      int X = thisX + xMoved;
      int Y = thisY + yMoved;
      Map.setLocation(X, Y);
    }
});
Map.add(Background);
Map.setSize(507,512);
Map.setLocation(0, 100);
Map.setResizable(false);
Map.setVisible(false);

余談ですがFlowLayout()、これが であることはわかっていますが、何か他のものを追加しようとすると、マップの上または下に配置されます。このマップの上に物を置けるか知りたいだけです。多分私は画像を別の方法で入れるべきJLabelですか?

4

1 に答える 1

0

JLayeredPaneおよび同様の戦略を調べます。詳細については、レイヤード ペインの使用方法を参照してください。

ここに画像の説明を入力

于 2013-05-16T09:30:47.333 に答える