gpt4 book ai didi

java - 使用 java swing 对 JTabbedPane 中的选项卡进行着色

转载 作者:行者123 更新时间:2023-12-03 02:14:40 28 4
gpt4 key购买 nike

我正在尝试更改 JTabbedPane 中选项卡的背景颜色。我也尝试了 JTabbedPane.setBackgroudAt(0, Color.GRAY) 和 JTabbedPane.setBackgroud(Color.GRAY) 以及前景,但没有任何反应。我更改了选项卡内面板的背景,但仍然没有任何效果。

enter image description here

编辑1:我正在使用UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");如果这可以帮助解决方案

编辑 2:链接到示例,https://www.dropbox.com/s/0krn9vikvkq46mz/JavaApplication4.rar

最佳答案

您可以使用setBackgroundAt()更改选项卡的背景颜色,如图here .

tab

您可以使用setBackground()更改选项卡内容的背景颜色,如图here 。通常,您必须在选项卡的内容上执行此操作,因为封闭的 JTabbedPane 背景色被内容遮挡。

content

如果您仍然遇到问题,请编辑您的问题以包含 sscce基于展示您遇到的问题的任一示例。

附录:也可以组合这些方法:

combined

import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;

public class JTabbedTest {

private static JTabbedPane jtp;

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {

@Override
public void run() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jtp = new JTabbedPane();
jtp.setPreferredSize(new Dimension(320, 200));
jtp.addTab("Reds", new ColorPanel(0, Color.RED));
jtp.setBackgroundAt(0, Color.RED);
jtp.addTab("Greens", new ColorPanel(1, Color.GREEN));
jtp.setBackgroundAt(1, Color.GREEN);
jtp.addTab("Blues", new ColorPanel(2, Color.BLUE));
jtp.setBackgroundAt(2, Color.BLUE);

f.add(jtp, BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
});
}

private static class ColorPanel extends JPanel implements ActionListener {

private final Random rnd = new Random();
private final Timer timer = new Timer(1000, this);
private Color color;
private Color original;
private int mask;
private JLabel label = new JLabel("Stackoverflow!");
private int index;

public ColorPanel(int index, Color color) {
super(true);
this.color = color;
this.original = color;
this.mask = color.getRGB();
this.index = index;
this.setBackground(color);
label.setForeground(color);
this.add(label);
timer.start();
}

@Override
public void actionPerformed(ActionEvent e) {
color = new Color(rnd.nextInt() & mask);
this.setBackground(color);
jtp.setBackgroundAt(index, original);
}
}
}

关于java - 使用 java swing 对 JTabbedPane 中的选项卡进行着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11333946/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com