1

Google Chrome などの多くのアプリでは、タブのタイトルの右側に「x」があり、クリックするとタブが閉じます。私のSwingアプリケーションでそのようなものを作るつもりです。このトピックを見つけて、アドバイスに従おうとしました。ただし、メソッドはヘッダーではなくタブ内にボタンを配置しているようです。これが私のコードです:

private void addCloseBtn(String title){
    JPanel btnPane = new JPanel(new GridBagLayout());
    btnPane.setOpaque(false);
    btnPane.setSize(new Dimension(15, 15));

    JButton btn = new JButton("X");
    btn.setPreferredSize(new Dimension(12, 12));
    btn.setMargin(new Insets(0, 0, 0, 0));
    btn.setFont(new Font("Dialog", 1, 9));

    GridBagConstraints gbc = new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = 0;
    gbc.weightx = 1;

    btnPane.add(btn, gbc);
    contentTabs.setComponentAt(contentTabs.indexOfTab(title), btn);
}

contentTabs私のフレームのプライベートクラスフィールドです。

btnPane役に立たないタブ全体をカバーします。タブのヘッダーまたは少なくともタブの右上隅に配置するにはどうすればよいですか? そして最後に、なぜbtn.setSize()メソッドが機能しないのbtn.setPreferredSize()ですか?

前もって感謝します。

4

1 に答える 1