繁体   English   中英

如何使用文本字段作为Java GUI中的输入来设置RGB值?

[英]How do you use text fields as an input in Java GUI to set RGB values?

到目前为止,我已经有了这段代码,在这里我希望创建的文本字段能够接受RGB值的输入,然后当按下“更改颜色”按钮时,消息将以原本的颜色显示在框架上在文本字段中指定,例如,如果文本字段的值是红色:255,蓝色:0,绿色:0,则该颜色将是文本的颜色。

我对Java还是很陌生,因此希望我对此有所帮助。

import javax.swing.*;
import java.awt.*;


public class Main {

public static void main(String[] args) {



    FilledFrame frame = new FilledFrame(); // Create new JFrame
    frame.setVisible( true ); // Set it to visible
    frame.setSize(500, 500); // Set size of JFrame window
    frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); // Set default close operation
    frame.setTitle("Change Colour"); // Set title of the JFrame window


}
}

class FilledFrame extends JFrame {

public FilledFrame()
{
    JButton mainButton = new JButton("Change Color"); // Create new button
    JPanel Panel = new JPanel(); // Create JPanel for the button

    Panel.add(mainButton); // Add button to the JFrame
    add(Panel, BorderLayout.SOUTH); // Set layout of the button to bottom of the window

    JLabel label = new JLabel("Welcome"); // Create the welcome message
    JPanel Panel1 = new JPanel(); // Create JPanel for the label

    Panel1.add(label); // Add label to the frame
    add(Panel1, BorderLayout.CENTER); // Set layout of the label to centre
    label.setForeground(Color.BLUE); // Set color of the label to blue

    Label red, green, blue;
    TextField redT, greenT, blueT;

    red = new Label("Red"); // Create label Red
    green = new Label("Green"); // Create Label Green
    blue = new Label("Blue"); // Create Label Blue

    redT = new TextField(5); // Create text field for input for red value
    greenT = new TextField(5); // Create text field for input green value
    blueT = new TextField(5); // Create text field for input blue value

    // Add the labels and text fields to the frame window

    Panel.add(red);
    Panel.add(redT);
    Panel.add(blue);
    Panel.add(blueT);
    Panel.add(green);
    Panel.add(greenT);

    add(Panel, BorderLayout.SOUTH); // Set position of the labels and text fields at bottom of the window
}

}

  1. 变量名称不应以大写字母开头。 有些是正确的。 其他不是。 始终如一。

  2. 不要使用“标签”和“文本字段”。 这些是AWT组件。 在Swing应用程序中,您应该使用JLabelJTextField

  3. 您可能需要考虑使用JSpinner ,因为可以对其进行配置以确保仅输入0到255之间的数字。阅读Swing教程中有关如何使用微调器的部分。

当按下“更改颜色”按钮时

然后,您需要向按钮添加一个ActionListener。 阅读Swing教程中有关如何使用按钮的部分,以获取一个入门示例。

然后在ActionListener中,从微调器中获取值

int red = (Integer)redSpinner.getValue();
int green = (Integer)greenSpinner.getValue();
int blue = (Integer)blueSpinner.getValue();
Color color = new Color(red, green, blue);
label.setForeground( color );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM