Firefox > tools > options
Java Swing を使用して (以下に示す)に似たウィンドウを設計する必要があります。トップヘッダーを 2 つ作成する必要があります。それぞれをクリックすると、タブ付きペインを開く必要があります(と同じFirefox > tools > options > advanced
です。私はSwingにほとんど慣れていません。
迅速な返信ありがとうございます。私は同じことを実装しようとしました。ベース ウィンドウは JDialog です。ツールバー (topPanel の BorderLayout-North にある) とコンテンツ パネル (topPanel の BorderLayout-Center にある) がこのトップ パネルに追加されます。「一般」と「詳細」の 2 つのツールバー ボタンが作成されます。これは、前回の投稿で説明したヘッダーです。「contentPanel」はプレースホルダー パネルです。ツールバーのボタンがクリックされるたびに、タブ付きパネルを動的に追加したい場所。デフォルトは一般的です。
高度なツールバー ボタンがクリックされるたびに、_generalTabbedPane を削除して _advanceTabbedPane を表示したい、またはその逆を行いたい。
しかし、それは適切に起こっていません.ツールバーボタンがクリックされたときにパネルを追加および削除/非表示にすることは、私が修正する必要があるものです.私は以下のコードを添付しました.
親切に助けてください。
@Override
public JComponent createContentPanel()
{
topPanel = new JPanel();
topPanel.setLayout(new BorderLayout());
JToolBar toolBar = new JToolBar();
toolBar.add(new tabButton("general",GENERAL));
toolBar.add(new tabButton("advanced",ADVANCED));
contentPanel = new JPanel();
contentPanel.add(getGeneralTabs());
topPanel.add(toolBar, BorderLayout.NORTH);
topPanel.add(contentPanel, BorderLayout.CENTER);
return topPanel;
}
private final class JCenterLabel extends JLabel
{
public JCenterLabel(final String s)
{
super(s);
setAlignmentX(Component.CENTER_ALIGNMENT);
}
public JCenterLabel(final Icon i)
{
super(i);
setAlignmentX(Component.CENTER_ALIGNMENT);
}
}
private class tabButton extends JButton
{
public tabButton ( String tabId,String actionCommand)
{
super();
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
add(new JCenterLabel(UIManager.getIcon("OptionPane.informationIcon")));
add(new JCenterLabel(tabId));
this.setActionCommand(actionCommand);
this.setName(tabId);
this.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (GENERAL.equals(cmd)) {
if(contentPanel != null){
contentPanel.remove(_advanceTabbedPane);
contentPanel.add(getGeneralTabs());
contentPanel.revalidate();
contentPanel.repaint();
}
} else if (ADVANCED.equals(cmd)) {
if(contentPanel != null){
contentPanel.remove(_generalTabbedPane);
contentPanel.add(getAdvancedTabs());
contentPanel.revalidate();
contentPanel.repaint();
}
}
}
});
}
}
private JideTabbedPane getGeneralTabs(){
_generalTabbedPane = new JideTabbedPane();
_generalTabbedPane.setModel(new TabbedPaneWithValidationModel());
//adding the tabs to the _generalTabbedPane
//-----
//---
return _generalTabbedPane;
}
private JideTabbedPane getAdvancedTabs(){
_advanceTabbedPane = new JideTabbedPane();
_advanceTabbedPane.setModel(new TabbedPaneWithValidationModel());
//adding the tabs to the _advanceTabbedPane
//-----
//---
return _advanceTabbedPane;
}