私はヘビとラダーゲームを作成しましたが、うまくいきましたが、少し変更を加えたいと思います。私は各プレイヤーに1つの代わりに2つのピース/プレイヤーを持たせたい。今度は新しいルールが登場し、同じプレーヤーの2つの部分が同じ広場を占めることができるので、同じ広場にそれらを表示する方法が必要です。 私はJLableを使って各四角形を識別しましたが、今は各四角形に複数のピースを保持させたいと思います。つまり、四角形が複数のピースによって占められている場合、ユーザーはピースをクリックしてそのピースのみを選択できる必要があります。四角形/ JLableを複数の四角形/ JLabelsに分割する方法はありますか? JLabelがここで使用するのがベストかどうか分かりません... 何か提案してください???JLabelをJLabelの中に入れたり、JLabelを四角形に分割する方法
2
A
答えて
3
カスタムラベルを作成し、各ユーザーを四角形として描画することもできます。ここで
5
これはあなたのケースのために行います、このコード例を試してみてください。
これを達成するための別の方法は次のとおりです:
ここimport java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LabelOverLabel
{
public static final String HTML =
"<html>" +
"<style type'text/css'>" +
"body, html { padding: 0px; margin: 0px; }" +
"</style>" +
"<body>" +
"<img src='http://pscode.org/media/starzoom-thumb.gif'" +
" width=320 height=240>" +
"";
private static final String PLAYERONE =
"<html>" +
"<style type'text/css'>" +
"body, html { padding: 0px; margin: 0px; }" +
"</style>" +
"<body>" +
"<img src='http://pscode.org/media/citymorn2.jpg'" +
" width=160 height=120>" +
"";
private static final String PLAYERTWO =
"<html>" +
"<style type'text/css'>" +
"body, html { padding: 0px; margin: 0px; }" +
"</style>" +
"<body>" +
"<img src='http://pscode.org/media/citymorn1.jpg'" +
" width=160 height=120>" +
"";
private JLabel playerOneLabel;
private JLabel playerTwoLabel;
private void createAndDisplayGUI()
{
JFrame frame = new JFrame("JLabel Over JLabel");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
final JLabel bottomLabel = new JLabel(HTML);
bottomLabel.setLayout(new FlowLayout(FlowLayout.LEFT, 2, 2));
playerOneLabel = new JLabel(PLAYERONE);
bottomLabel.add(playerOneLabel);
JButton insertPlayer = new JButton("INSERT");
insertPlayer.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
playerTwoLabel = new JLabel(PLAYERTWO);
bottomLabel.add(playerTwoLabel);
bottomLabel.revalidate();
bottomLabel.repaint();
}
});
frame.getContentPane().add(bottomLabel, BorderLayout.CENTER);
frame.getContentPane().add(insertPlayer, BorderLayout.PAGE_END);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String... args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new LabelOverLabel().createAndDisplayGUI();
}
});
}
}
が同じの出力であります
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LabelOverLabel
{
private JLabel playerOneLabel;
private JLabel playerTwoLabel;
private Icon[] icons = {UIManager.getIcon("OptionPane.informationIcon"),
UIManager.getIcon("OptionPane.errorIcon"),
UIManager.getIcon("OptionPane.warningIcon")};
private void createAndDisplayGUI()
{
JFrame frame = new JFrame("JLabel Over JLabel");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
final JLabel bottomLabel = new JLabel("I am a JLabel");
bottomLabel.setBorder(BorderFactory.createLineBorder(Color.BLUE.darker(), 5));
//bottomLabel.setIcon(icons[0]);
bottomLabel.setLayout(new FlowLayout(FlowLayout.LEFT, 2, 2));
playerOneLabel = new JLabel();
playerOneLabel.setIcon(icons[1]);
bottomLabel.add(playerOneLabel);
JLabel secondLabel = new JLabel("1");
bottomLabel.add(secondLabel);
JButton insertPlayer = new JButton("INSERT");
insertPlayer.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
playerTwoLabel = new JLabel();
playerTwoLabel.setIcon(icons[2]);
bottomLabel.add(playerTwoLabel);
bottomLabel.revalidate();
bottomLabel.repaint();
}
});
frame.getContentPane().add(bottomLabel, BorderLayout.CENTER);
frame.getContentPane().add(insertPlayer, BorderLayout.PAGE_END);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String... args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new LabelOverLabel().createAndDisplayGUI();
}
});
}
}
出力:
+0
大変ありがとうございます。私はあなたの提案を試み、それが機能するかどうかを見ます。私はあなたに戻ってきますが、それの見た目から、私が望むものです。 –
+0
@LeeRooy:この事はあなたの状況でうまくいくことを願って、ちょうど1日後にそれを学んで、このことが可能で、同じことについて質問しました。そしてビンゴ、私はあなたの質問に答えました:-)そして残りの部分は大歓迎です。 –
関連する問題
- 1. "panel.add(new JLabel(" "")); "にあるJLabelのフォントサイズを変更する方法"
- 2. のJLabelはのJLabel
- 3. 新しいJLabelに画像とJLabelを追加する
- 4. JLabelをリセットするには
- 5. FTPClientの使用中にSwingでJLabelを検証する方法
- 6. JLabelのimportDataをオーバーライドする方法
- 7. JLabelをリフレッシュ
- 8. JLabelに値を渡す
- 9. JPanelでJLabelを「ペイントする」方法は?
- 10. JLabelの/ JPanelの
- 11. フォーマットのJLabel JTextBox
- 12. javafxのJLabel#setIcon
- 13. JLabelのメソッド
- 14. 多色のJLabel
- 15. JLabelのデフォルトスペーシング
- 16. JLabelの改行
- 17. JLabelのコントロール
- 18. は別のJLabel
- 19. JlabelをJavaアプレットに追加
- 20. JLabelにテキストを追加
- 21. MouseListenerにJLabelを追加
- 22. JPanelにJLabelを追加 - BorderLayout
- 23. Java ImageIconをJLabelに追加
- 24. JLabelマトリックスをグラフィックスディスプレイに変換
- 25. jcheckboxをjlabelに表示
- 26. JLabelにアンカーを設定する方法はありますか?
- 27. カスタムJLabelアイコン
- 28. ランダムJlabel画像
- 29. java jlabel array
- 30. JLabel not Centering
何を正方形に使用しましたか? – maksimov
あなたのPiece/Playerは正確には何か、「JButton」か「JLabel」ですか、どのエンティティがPiece/Playerをあなたのケースで表すのかを意味しますか?あなたが 'JLabel'に何かを置くことはできますが、あなたの場合は、' label.setLayout(FlowLayout.LEFT));を実行し、あなたの作品を 'JLabel'に追加してください。 –
私はJlabelを四角形に使用しています.JLableObject.setIcon(newImIcon)を使用してJLable内にピース/プレーヤを配置します。 –