6
A
回答
9
我想你應該能夠建立自己的JTabbedPaneUI
並使用setUI
設置它的JTabbedPane
來管理它。
你的ComponentUI
有方法來獲得無障礙兒童。如果您指定JButton
和JLabel
,那麼您可能正在營業。
雖然我沒有嘗試過這個。這是 「風險自擔」 :)
3
你可以試試這個:
public static void main (String[] args) {
JFrame parent = new JFrame();
final JTabbedPane pane = new JTabbedPane();
pane.addTab ("test", null);
FlowLayout f = new FlowLayout (FlowLayout.CENTER, 5, 0);
// Make a small JPanel with the layout and make it non-opaque
JPanel pnlTab = new JPanel (f);
pnlTab.setOpaque (false);
// Create a JButton for adding the tabs
JButton addTab = new JButton ("+");
addTab.setOpaque (false); //
addTab.setBorder (null);
addTab.setContentAreaFilled (false);
addTab.setFocusPainted (false);
addTab.setFocusable (false);
pnlTab.add (addTab);
pane.setTabComponentAt (pane.getTabCount() - 1, pnlTab);
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed (ActionEvent e) {
String title = "Tab " + String.valueOf (pane.getTabCount() - 1);
pane.addTab (title, new JLabel (title));
}
};
addTab.setFocusable (false);
addTab.addActionListener (listener);
pane.setVisible (true);
parent.add (pane);
parent.setSize (new Dimension (400, 200));
parent.setVisible (true);
}
0
我嘗試了好幾種解決方案,並與這一個來:
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
public class TestTab {
public static void main(String[] args) {
JFrame parent = new JFrame();
final JTabbedPane tabEntity = new JTabbedPane();
tabEntity.addTab("Details", null, new JScrollPane());
tabEntity.addTab("Context", null, new JScrollPane());
tabEntity.addTab("", null, new JScrollPane());
addButtonToTab(tabEntity);
parent.add(tabEntity);
parent.setSize(new Dimension(400, 200));
parent.setVisible(true);
}
public static void addButtonToTab(final JTabbedPane tabEntity) {
tabEntity.setTabComponentAt(tabEntity.getTabCount() - 1, new JButton(
"+"));
}
}
所以你有:
0
寫在默認構造函數下面的代碼
類中JPanel panel = new JPanel();
tabbedPane.addTab("Welcome", null, panel, null);
tabbedPane.addTab(" + ", null, panel1, null);
tabbedPane.addChangeListener(new ChangeListener()
{
public void stateChanged(ChangeEvent evt)
{
JTabbedPane tabbedPane = (JTabbedPane)evt.getSource();
if(tabbedPane.getSelectedIndex() == tabbedPane.indexOfTab(" + "))
{
createTab();
}
}
});
,並創建方法來聲明,並在主類的初始化啓動int tab2 = 2;
。它的工作。
private void createTab()
{
tabbedPane.addTab("New Tab",new Panel());
tabbedPane.addTab(" + ",null,panel1,null);
tabbedPane.setSelectedIndex(tab2);
tab2++;
}
相關問題
- 1. 如何將關閉按鈕添加到JTabbedPane選項卡?
- 2. 如何在選項卡中添加關閉按鈕,JTabbedPane
- 3. 在JTabbedpane選項卡上添加圖標
- 4. 爪哇鞦韆按鈕
- 5. 爪哇迴歸按鈕
- 6. JTabbedPane中的選項卡不反映按鈕上的更改
- 7. 卡夫卡 - 爪哇 - 從crashs
- 8. 爪哇GUI添加按鈕與一個for循環
- 9. JTabbedPane - 帶關閉按鈕引用的選項卡
- 10. 如何通過單擊按鈕切換jTabbedPane中的選項卡?
- 11. 爪哇ArrayList.contains()&添加()方法
- 12. 爪哇 - 項目
- 13. 如何添加JScrollPane的一個JTabbedPane中的選項卡里面
- 14. 從JTabbedPane隱藏選項卡
- 15. JTabbedPane沒有顯示添加的其他選項卡
- 16. 爪哇 - 有按鈕顯示箭頭
- 17. 爪哇 - SWT - 在點擊提交按鈕
- 18. 爪哇:復位按鈕不工作
- 19. 的JavaCC解析器選項LOOKAHEAD,爪哇
- 20. Java JTabbedPane不能添加多個選項卡?
- 21. 在jQuery UI選項卡上製作一個「添加選項卡」按鈕
- 22. YUI TabView:關閉所有選項卡時,「添加選項卡」按鈕
- 23. 爪哇:NoClassDefFoundError的添加包語句
- 24. 在java中按下按鈕後添加選項卡
- 25. 按鈕的Bootstrap選項卡?
- 26. 卡夫卡爪哇生產者與kerberos
- 27. 在新創建的選項卡上添加按鈕
- 28. 如何在viewpager中的選項卡上添加一個按鈕
- 29. PyQt動態添加按鈕的選項卡 - 佈局問題
- 30. 爪哇:添加到成套集
使用自定義UI是最好的選擇。我之前做過類似的事情。對於要關閉的選項卡上的「X」,您可以覆蓋選項卡本身的繪製以包含X並安裝鼠標偵聽器,以檢查用戶是否用X選擇了該區域。 – 2009-12-28 21:15:09
Sun的「選項卡式窗格」教程包括一個這樣的功能的例子:http://java.sun.com/docs/books/tutorial/uiswing/components/tabbedpane.html – trashgod 2009-12-28 22:09:52