[英]how to prevent from changing tab by mouse click
我的問題可能很愚蠢,但我試圖通過在JTabbedPane
單擊鼠標來禁用更改選項卡 。 我在谷歌搜索,但沒有找到任何有用的答案。 我試圖添加空的MouseListener
但我仍然可以在鼠標單擊時更改選項卡。
我的守則如下:
public JTabbedPane createTabbedPane()
{
JTabbedPane pane=new JTabbedPane();
pane.addTab("tab1",panel1);
pane.addTab("tab2",panel2);
pane.addTab("tab3",panel3);
pane.addMouseListener(new MouseAdapter());
return pane;
}
我也試過這個:
public JTabbedPane createTabbedPane()
{
JTabbedPane pane=new JTabbedPane();
pane.addTab("tab1",panel1);
pane.addTab("tab2",panel2);
pane.addTab("tab3",panel3);
pane.addMouseListener(new MouseListener()
{
@Override
public void mouseClicked(MouseEvent e) {}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
});
return pane;
}
如果有人知道如何做到這一點,請告訴我。 提前致謝。
您可以在ChangeListener
幫助下通過鼠標阻止更改標簽,如下所示:
final JTabbedPane pane = new JTabbedPane();
pane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
pane.setSelectedIndex(HOLD_INDEX);
}
});
HOLD_INDEX
是以編程方式選擇的選項卡的索引。
當您嘗試選擇另一個選項卡時,它將重新選擇為HOLD_INDEX
。
你可以嘗試幾件事......
將您不希望選中的選項卡設置為禁用...
pane.setEnabled(indexOfTab, false);
提供您自己的SingleSelectionModel
,您可以從中控制可以選擇哪些選項卡
另一種可能是使用空實現覆蓋addMouseListener(...)
以防止任何鼠標交互。 示例代碼如下:
JTabbedPane tabbedPane = new JTabbedPane() {
public synchronized void addMouseListener(MouseListener l) { };
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.