【发布时间】:2017-03-12 21:56:37
【问题描述】:
基本上!我需要使用 jtextfields 更改最初设置为红色的消息的颜色,所有代码都已完成,除了更改颜色的位,因为我不知道如何引用消息。我知道它需要执行@overide 操作,但它说它无法识别“消息”是什么,我试过 message.setForeground(new Color(a, b, c));但是,是的,任何关于在这里做什么的帮助都会很棒,谢谢。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CE203_2016_Ex1 extends JFrame {
JTextField tred, tgreen, tblue;
public CE203_2016_Ex1() {
JPanel panel1 = new JPanel(); //creates panels for the boxes that will hold the rgb values
JPanel panel2 = new JPanel();
tred = new JTextField("Red", 10);
tgreen = new JTextField("Green", 10); //creates boxes for rgb values
tblue = new JTextField("Blue", 10);
panel1.add(tred);
panel1.add(tgreen); //adding jtextfields to panels
panel1.add(tblue);
add(panel1, BorderLayout.SOUTH); //adding panels to frame
add(panel2, BorderLayout.CENTER);
JLabel message = new JLabel("hello"); //text
message.setForeground(new Color(255, 0, 0)); //original text set to red
JButton goButton = new JButton("Change"); //adds button to change colour
panel1.add(goButton);
panel2.add(message);
goButton.addActionListener(new ButtonHandler(this));
}
class ButtonHandler implements ActionListener {
private CE203_2016_Ex1 theApp;
public ButtonHandler(CE203_2016_Ex1 theApp) {
this.theApp = theApp;
}
@Override
public void actionPerformed(ActionEvent e) {
int a = Integer.parseInt(theApp.tred.getText());
int b = Integer.parseInt(theApp.tgreen.getText());
int c = Integer.parseInt(theApp.tblue.getText());
}
}
public static void main(String[] args) {
JFrame app = new CE203_2016_Ex1();
app.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
app.setSize(700, 700);
app.setVisible(true);
}
}
【问题讨论】:
标签: button jframe jpanel jtextfield rgb