Как реализовать настраиваемые элементы управления вкладками в java

#java #swing #custom-component #jtabbedpane

#java #swing #пользовательский компонент #jtabbedpane

Вопрос:

Я хочу, чтобы элемент управления вкладками был такимвведите описание изображения здесь

Вкладка, которая точно изображена на картинке, используется мной в проекте C #. Это компонент, предлагаемый componentone studio со множеством пользовательских опций. Но я не могу найти никаких плагинов для java, которые могли бы делать подобные вещи. Внешний вид работает совсем не хорошо. Кто-нибудь может сказать мне, как добавить стильный элемент управления вкладками в мое приложение. Поскольку я новичок в Java, пожалуйста, дайте мне подробный ответ. Заранее спасибо.

Ответ №1:

Это панели с вкладками, документация.

JTabbedPane класс.

Пример кода для страницы:

 JTabbedPane tabbedPane = new JTabbedPane();
ImageIcon icon = createImageIcon("images/middle.gif");

JComponent panel1 = makeTextPanel("Panel #1");
tabbedPane.addTab("Tab 1", icon, panel1,
                  "Does nothing");
tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);

JComponent panel2 = makeTextPanel("Panel #2");
tabbedPane.addTab("Tab 2", icon, panel2,
                  "Does twice as much nothing");
tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);

JComponent panel3 = makeTextPanel("Panel #3");
tabbedPane.addTab("Tab 3", icon, panel3,
                  "Still does nothing");
tabbedPane.setMnemonicAt(2, KeyEvent.VK_3);

JComponent panel4 = makeTextPanel(
        "Panel #4 (has a preferred size of 410 x 50).");
panel4.setPreferredSize(new Dimension(410, 50));
tabbedPane.addTab("Tab 4", icon, panel4,
                      "Does nothing at all");
tabbedPane.setMnemonicAt(3, KeyEvent.VK_4);

protected JComponent makeTextPanel(String text) {
    JPanel panel = new JPanel(false);
    JLabel filler = new JLabel(text);
    filler.setHorizontalAlignment(JLabel.CENTER);
    panel.setLayout(new GridLayout(1, 1));
    panel.add(filler);
    return panel;
}

protected static ImageIcon createImageIcon(String path) {
    java.net.URL imgURL = TabbedPaneDemo.class.getResource(path);
    if (imgURL != null) {
        return new ImageIcon(imgURL);
    } else {
        System.err.println("Couldn't find file: "   path);
        return null;
    }
}
  

Полный пример с исходным кодом.

Комментарии:

1. Tnx, не могли бы вы, пожалуйста, рассказать, как сделать панели с вкладками полупрозрачными?

2. проверьте этот раздел: coderanch.com/t/600541/GUI/java/JtabbedPane-transparency