Изменить цвет вида сбоку JTabbedPanel - PullRequest
1 голос
/ 05 февраля 2020

У меня следующий макет, разработанный с использованием JTabbedPane, и я хочу изменить цвет выделенной части. Но я не могу это сделать.
Мой вопрос
Как изменить цвет фона?
Что я пробовал?
I Я пытался изменить background-color и Foreground-color как JPanel, так и JTabbedPane, но безуспешно.
Я также пытался это сделать, сохраняя Opaque = false в свойствах, но не повезло.
jTabbedPane1.setForegroundAt(1, Color.yellow); jTabbedPane1.setForegroundAt(2, Color.yellow);

this layout
Обновление 1

 String[] tabNames = {"Signin", "General", "Call Rate", "Audio Device","tab 5","tab 6","tab 7","tab 8","tab 9"};

    for (int i = 0; i < tabNames.length; i++) {
        JLabel lab = new JLabel("<html><font color=white>" + tabNames[i] + "</font></html>", SwingConstants.CENTER);

        lab.setForeground(Color.red);
        lab.setBackground(Color.BLUE);
        lab.setPreferredSize(new Dimension(200, 50));
        lab.setFont(new Font("Times New Roman", Font.BOLD, 22));
        jTabbedPane1.setTabComponentAt(i, lab);
    }

    for (int i = 0; i < this.jTabbedPane1.getTabCount(); i++) {
        jTabbedPane1.setBackgroundAt(i,Color.DARK_GRAY);
    }

Я пытался добавить JLabel, чтобы изменить размер компонент, в котором отображается имя моей вкладки, а затем попытался установить setBackgroundAt. Ни он не работает, ни setBackground и setForeground не работают на Label.
Мой взгляд и ощущение

  try {

        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }

    } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(Settings.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }

1 Ответ

0 голосов
/ 05 февраля 2020

Основы c logi c будут:

JPanel tab1 = new JPanel();
tab1.background( Color.RED );

JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.add(tab1, "Tab1");

JPanel parent = new JPanel( new BorderLayout() );
parent.setBackground( Color.GREEN );
parent.add( tabbedPane );

frame.add( parent );

Теперь область, занимаемая вкладкой, будет иметь цвет фона "родительской" панели.

Если это не работает, значит у вас проблема с внешним видом.

Решение проблема была решена после изменения внешнего вида

...