Java 如何使用Swing制作只有图标和半透明组件的选项卡标题?
我想在Swing GUI中创建一个选项卡式窗格,使选项卡标题显示为图标(即,我想在选项卡式窗格标题上放置图片,就像我们可以在按钮上放置图片一样) 具有选项卡式窗格标题的GUI显示为图标(只有这些标题上的图片可见,整个组件的其余部分完全透明),当用户单击图片/图标/选项卡式窗格标题时,整个选项卡式窗格变为半透明,并显示其内容(如文本)。随附的照片更能说明这一点。请注意,选项卡式窗格没有可见边框 可能吗?欢迎提供任何提示或建议? 此外,这种透明和半透明的swing组件是否可以通过NetBeans IDE的拖放功能实现? 当用户单击时: 如果有任何关于如何做到这一点的想法,我将不胜感激。Java 如何使用Swing制作只有图标和半透明组件的选项卡标题?,java,swing,user-interface,netbeans-7,Java,Swing,User Interface,Netbeans 7,我想在Swing GUI中创建一个选项卡式窗格,使选项卡标题显示为图标(即,我想在选项卡式窗格标题上放置图片,就像我们可以在按钮上放置图片一样) 具有选项卡式窗格标题的GUI显示为图标(只有这些标题上的图片可见,整个组件的其余部分完全透明),当用户单击图片/图标/选项卡式窗格标题时,整个选项卡式窗格变为半透明,并显示其内容(如文本)。随附的照片更能说明这一点。请注意,选项卡式窗格没有可见边框 可能吗?欢迎提供任何提示或建议? 此外,这种透明和半透明的swing组件是否可以通过NetBeans I
对于选项卡,使用
JTabbedPane
的addTab(null,icon,component)
和icon
所需的图像以及component
半透明的JLabel
。您可以通过调用其setOpaque(true)
和setBackground(新颜色(255、255、255、100))
来创建一个
编辑
试着运行这个,看看它是否越来越接近你想要的
public class TransparentTabs extends JFrame {
private final static Color TRANSPARENT = new Color(0, 0, 0, 0);
TransparentTabs() {
JTabbedPane tabs = new JTabbedPane();
JLabel label = new JLabel("Text Here");
label.setOpaque(true);
label.setBackground(TRANSPARENT);
tabs.addTab(null, new ImageIcon("path to image"), label); // Change path
tabs.addTab("Tab to the left has only an image", new JLabel("Something"));
tabs.setSelectedIndex(-1);
getContentPane().setBackground(Color.RED); // Placeholder for background image
getContentPane().add(tabs);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public static void main(String[] args) {
UIManager.put("TabbedPane.contentAreaColor", TRANSPARENT);
UIManager.put("TabbedPane.selected", TRANSPARENT);
UIManager.put("TabbedPane.background", TRANSPARENT);
UIManager.put("TabbedPane.borderHightlightColor", TRANSPARENT);
UIManager.put("TabbedPane.darkShadow", TRANSPARENT);
UIManager.put("TabbedPane.focus", TRANSPARENT);
new TransparentTabs();
}
}
是的,有可能。。。你试过什么?向我们展示您的代码。使用
JavaFX
——替代/取代Java 8中Swing的新UI工具包,也可能值得一看。在JavaFX中,制作现代用户界面要简单得多,速度也快得多。谢谢,您能澄清一下“和组件半透明的JLabel”是什么意思吗?这是否意味着我必须在选项卡式窗格中添加JLabel?@ZarahJTabbedPane
中的选项卡由“标题”和“显示的组件”组成。您需要创建一个JLabel
,并将其作为参数传递给addTab
方法。我建议您尝试编写一些代码并发布,这样我们可以更好地解决您的问题。我不能用Netbeans GUI builder吗?@Zarah我不知道,我既不使用Netbeans,也不使用GUI builder。然后我必须理解一些代码,然后编写代码来完成。在我设置之前,请您确认(1)我想在上面的问题中问的是,选项卡应该看起来像图标(只有标题中的图标应该是可见的,组件应该是不可见的)(2)当用户单击图标时,选项卡的半透明体会打开/显示。我仍然怀疑我是否把我的观点讲清楚了。所以我还是想确认一下,这可能吗?