在这篇文章中,我们将带领您了解JTabbedPane:如果堆叠/Nimbus,则避免对标签进行自动重新排序的全貌,包括堆叠标记的相关情况。同时,我们还将为您介绍有关Ajaxtabbedpanel标签、
在这篇文章中,我们将带领您了解JTabbedPane:如果堆叠/ Nimbus,则避免对标签进行自动重新排序的全貌,包括堆叠标记的相关情况。同时,我们还将为您介绍有关Ajax tabbedpanel标签、com.intellij.ui.TabbedPaneImpl的实例源码、Java JTabbedPane允许Tab仅在true时切换到、Java Swing实战(一)JFrame和JTabbedPane容器的知识,以帮助您更好地理解这个主题。
本文目录一览:- JTabbedPane:如果堆叠/ Nimbus,则避免对标签进行自动重新排序(堆叠标记)
- Ajax tabbedpanel标签
- com.intellij.ui.TabbedPaneImpl的实例源码
- Java JTabbedPane允许Tab仅在true时切换到
- Java Swing实战(一)JFrame和JTabbedPane容器
JTabbedPane:如果堆叠/ Nimbus,则避免对标签进行自动重新排序(堆叠标记)
JTabbedPane正是我要达到的目的。我的水平空间非常有限,所以我的Tab可以叠放,这完全可以。
但是默认行为是,如果用户单击选项卡,则* 选项卡将重新排序,以使活动的选项卡变为低位 *s。从理论上看,非常直观和合乎逻辑的内容是实际使用中的噩梦,因为用户会松散地了解“哪个是哪个”。一次又一次地告诉我,这简直是令人困惑。
我想应该有可能重写UI的某些方法来避免这种行为(并且我不在乎纸卡是否可能在物理上实现:-)。
有谁知道我需要在哪里做?我正在使用Nimbus LAF,它似乎并没有使它更容易。
(我曾考虑过使用radiobuttons /
cardLayout,但是我需要在选项卡标题中放置一个自定义面板,并且radiobuttons只能有一个字符串或图标。对于JToggleButton来说也是一样的。)
任何提示都非常欢迎!
感谢和亲切的问候,菲利普
答案1
小编典典好的,我发现了问题。在
package javax.swing.plaf.basic.BasicTabbedPaneUI;
它说像这样
// Rotate run array so that selected run is first if (shouldRotateTabRuns(tabPlacement)) { rotateTabRuns(tabPlacement, selectedRun); }
可惜的是,似乎并没有容易的方法来改变它。
尽管如果您省略了对此事的调用rotateTabRuns(tabPlacement,selectedRun);
或更改shouldRotateTabRuns(tabPlacement)
,应该没问题。但是,这样做必须重写一大堆类……具体取决于您使用的是哪一个类。
像这样继承
Basic > Synth > Nimbus
在每个L&F级别上,都有几个要自定义的类…我没有数。
希望能帮助到你!:D
编辑 哦,是的… @mkorbel已经提供了该 aephyr 的解决方案,为什么不使用它呢?
Ajax tabbedpanel标签
总结
以上是小编为你收集整理的Ajax tabbedpanel标签全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
com.intellij.ui.TabbedPaneImpl的实例源码
public GitCompareBranchesDialog(@NotNull Project project,@NotNull String branchName,@NotNull String currentBranchName,@NotNull GitCommitCompareInfo compareInfo,@NotNull GitRepository initialRepo,boolean dialog) { myProject = project; String rootString; if (compareInfo.getRepositories().size() == 1 && GitUtil.getRepositoryManager(myProject).moreThanOneRoot()) { rootString = " in root " + DvcsUtil.getShortRepositoryName(initialRepo); } else { rootString = ""; } myTitle = String.format("Comparing %s with %s%s",currentBranchName,branchName,rootString); myMode = dialog ? Mode.MODAL : Mode.FRAME; JPanel diffPanel = new GitCompareBranchesDiffPanel(myProject,compareInfo); myLogPanel = new GitCompareBranchesLogPanel(myProject,compareInfo,initialRepo); myTabbedPane = new TabbedPaneImpl(SwingConstants.TOP); myTabbedPane.addTab("Log",VcslogIcons.Branch,myLogPanel); myTabbedPane.addTab("Diff",AllIcons.Actions.Diff,diffPanel); myTabbedPane.setKeyboardNavigation(TabbedPaneImpl.DEFAULT_PREV_NEXT_SHORTCUTS); }
@Override protected JComponent createCenterPanel() { myLogPanel = new GitCompareBranchesLogPanel(myProject,myBranchName,myCurrentBranchName,myCompareInfo,myInitialRepo); JPanel diffPanel = new GitCompareBranchesDiffPanel(myProject,myCompareInfo); TabbedPaneImpl tabbedPane = new TabbedPaneImpl(SwingConstants.TOP); tabbedPane.addTab("Log",Git4ideaIcons.Branch,myLogPanel); tabbedPane.addTab("Diff",diffPanel); tabbedPane.setKeyboardNavigation(TabbedPaneImpl.DEFAULT_PREV_NEXT_SHORTCUTS); return tabbedPane; }
Java JTabbedPane允许Tab仅在true时切换到
我在用户单击选项卡时执行了一些验证.如果validation == true,则允许选项卡显示(或切换到).现在我正在使用StateChanged事件进行验证.问题是,当您单击选项卡时,它会显示选项卡内容,如果验证== false,则会切换回上一个选项卡.除非验证== true,否则我不希望它切换到.我该怎么做,我是在检查错误的事件吗?谢谢你们
编辑:禁用选项卡会使其灰显,因此用户无法在第一时间单击它,这意味着您必须在用户单击选项卡之前执行验证检查.
Java Swing实战(一)JFrame和JTabbedPane容器
概述:
项目是一个桌面程序,涉及标签和按钮组件、布局管理器组件、面板组件、列表框和下拉框组件等组件,以及Swing事件处理机制。
下面先从最基础的界面开始。
/**
* @author: lishuai
* @date: 2018/11/26 13:51
*/
public class WeimingSyncApplets {
public static void main(String[] args) {
// 面板组件
JPanel taskPanel = new JPanel();
JPanel dbPanel = new JPanel();
JTabbedPane tabbedPane = buildJTabbedPane(taskPanel, dbPanel);
buildFrame(tabbedPane);
}
private static JTabbedPane buildJTabbedPane(JPanel taskPanel, JPanel dbPanel) {
// 选项卡面板
JTabbedPane tabbedPane = new JTabbedPane();
// 通过BorderFactory来设置边框的特性
tabbedPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
tabbedPane.add("执行任务", taskPanel);
tabbedPane.add("数据源配置", dbPanel);
return tabbedPane;
}
private static void buildFrame(JComponent component) {
// 窗体容器
JFrame frame = new JFrame("数据同步工具");
frame.add(component);
// JFrame.EXIT_ON_CLOSE 退出
// JFrame.HIDE_ON_CLOSE 最小化隐藏
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
// 设置布局
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(BorderLayout.CENTER, component);
// 设置窗口最小尺寸
frame.setMinimumSize(new Dimension(1060, 560));
// 调整此窗口的大小,以适合其子组件的首选大小和布局
frame.pack();
// 设置窗口相对于指定组件的位置
frame.setLocationRelativeTo(null);
frame.setVisible(true);
// 设置窗口尺寸是否固定不变
frame.setResizable(true);
}
}
效果如图:
今天关于JTabbedPane:如果堆叠/ Nimbus,则避免对标签进行自动重新排序和堆叠标记的分享就到这里,希望大家有所收获,若想了解更多关于Ajax tabbedpanel标签、com.intellij.ui.TabbedPaneImpl的实例源码、Java JTabbedPane允许Tab仅在true时切换到、Java Swing实战(一)JFrame和JTabbedPane容器等相关知识,可以在本站进行查询。
本文标签: