【发布时间】:2015-11-19 22:30:49
【问题描述】:
想要在我的 JLabel 中将红色、绿色、蓝色的文本颜色更改为适当的颜色,同时保持我的背景和 JSlider 仍然是程序的默认颜色。我不关心高度和宽度颜色,而只关心表示红色、蓝色和绿色的 JSlider 旁边的文本。任何帮助表示赞赏!谢谢!
import java.awt.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
import javax.swing.event.*;
public class ControlApp extends JFrame
{
private JPanel mainPanel;
private PrintWriter out;
private JSlider height,width,red,green,blue;
private String aspect;
private String value;
public static void main(String []args)
{
new ControlApp();
}
public ControlApp()
{
super("ControlApp");
mainPanel = new JPanel();
add(mainPanel,BorderLayout.CENTER);
//SliderListener sl = new SliderListener();
height = new JSlider(JSlider.VERTICAL, 0,500,0);
//height.addChangeListener(sl);
width = new JSlider(JSlider.VERTICAL, 0,500,0);
//width.addChangeListener(sl);
red = new JSlider(JSlider.VERTICAL, 0,255,0);
//red.addChangeListener(sl);
green = new JSlider(JSlider.VERTICAL, 0,255,0);
//green.addChangeListener(sl);
blue = new JSlider(JSlider.VERTICAL, 0,255,0);
//blue.addChangeListener(sl);
mainPanel.add(new JLabel("Height"));
mainPanel.add(height,BorderLayout.CENTER);
mainPanel.add(new JLabel("Width"));
mainPanel.add(width,BorderLayout.CENTER);
mainPanel.add(new JLabel("Red"));
mainPanel.add(red,BorderLayout.CENTER);
mainPanel.add(new JLabel("Green"));
mainPanel.add(green,BorderLayout.CENTER);
mainPanel.add(new JLabel("Blue"));
mainPanel.add(blue,BorderLayout.CENTER);
setLocationRelativeTo(null);
this.setSize(500,250);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
【问题讨论】:
-
这不是我要问的。 ChangeListener 将一个套接字传递给另一个类以更改 JFrame 的背景。我希望能够在我的 JLabel 中更改文本的颜色(红、绿、蓝)。
-
@HovercraftFullOfEels
-
好吧,我的错——只是设置它们的前景色。但是,为什么在向使用 FlowLayout 的 JPanel 添加组件时(错误)使用 BorderLayout 常量?