以下代码段演示了如何创建一个JTabbedPane组件,这些组件的选项卡上带有图像图标。为此,我们需要执行两个步骤。首先,我们需要加载图像图标,然后,我们需要将这些图标附加到选项卡上。
要创建或加载图像图标,只需创建ImageIcon类的实例。将有关图像位置的信息传递给的构造函数ImageIcon。在下面的示例中,我使用getClass().getResource()将从resources目录中加载图像的方法提供图像的位置。
要添加一个带有图像图标的新标签,该标签附有JTabbedPane组件的标签,我们正在使用addTab(String, Icon, Component)方法。此方法中的第二个参数是选项卡的图像图标。
让我们看看下面的代码片段:
package org.nhooo.example.swing; import javax.swing.*; import java.awt.*; public class TabbedPaneWithIcon extends JPanel { private TabbedPaneWithIcon() { initializeUI(); } private static void showFrame() { JPanel panel = new TabbedPaneWithIcon(); panel.setOpaque(true); JFrame frame = new JFrame("Tabbed Pane With Icon Demo"); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setContentPane(panel); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { TabbedPaneWithIcon.showFrame(); } }); } private void initializeUI() { this.setLayout(new BorderLayout()); this.setPreferredSize(new Dimension(500, 200)); JTabbedPane pane = new JTabbedPane(); ImageIcon tab1Icon = new ImageIcon( this.getClass().getResource("/images/test-pass-icon.png")); ImageIcon tab2Icon = new ImageIcon( this.getClass().getResource("/images/test-fail-icon.png")); ImageIcon tab3Icon = new ImageIcon( this.getClass().getResource("/images/test-error-icon.png")); JPanel content1 = new JPanel(); JPanel content2 = new JPanel(); JPanel content3 = new JPanel(); pane.addTab("Pass", tab1Icon, content1); pane.addTab("Fail", tab2Icon, content2); pane.addTab("Error", tab3Icon, content3); this.add(pane, BorderLayout.CENTER); } }
项目的目录结构:
nhooo-swing ├── pom.xml └── src └── main ├── java │ └── org │ └── nhooo │ └── example │ └── swing │ └── TabbedPaneWithIcon.java └── resources └── images ├── test-error-icon.png ├── test-fail-icon.png └── test-pass-icon.png
这是上面代码片段的结果。