0

レイアウトが Null に設定されている GUI があり、JButtons にはアイコンがあり、ボタンにテキストを追加するとボタンが歪んで見えるため、JButtons の上に JLabels を配置します。そのため、代わりに JButtons の上に JLabels を使用しています。テスト中にマウスが JButton の上に移動するたびに、JLabel が消えます。JLabels が常に JButtons の上に表示されるように修正するにはどうすればよいですか。

編集: ボタンが歪むため、アイコンがほとんどのスペースを占有し、ボタンのラベルがボタンの反対側の端で切り取られます。

4

2 に答える 2

3

JFrame を使用している場合は、コンテンツ ペインの上にある JLayered ペインにラベルを追加できます。

于 2012-03-29T06:53:20.340 に答える
1

null レイアウトを使用する必要がある場合はほとんどありません。LayoutManagersで少し練習する必要があるだけです。

JLayeredPaneでやりたいことができます。このような:

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;

public class Test {
    public static void main(String[] args) {
        JFrame frame = new JFrame();

        frame.add(jLabelOnJButton());

        frame.setSize(300, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    private static JComponent jLabelOnJButton(){
        JLayeredPane layers = new JLayeredPane();

        JLabel label = new JLabel("label");
        JButton button = new JButton("button");

        label.setBounds(40, 20, 100, 50);
        button.setBounds(20, 20, 150, 75);

        layers.add(label, new Integer(2));
        layers.add(button, new Integer(1));

        return layers;
    }
}

これは良い解決策ではないと思います。より良い解決策がない場合にのみ実行してください。

于 2012-03-29T08:00:59.083 に答える