java 当按钮被按下时,如何更改背景颜色?[已关闭]

toe95027  于 2023-01-15  发布在  Java
关注(0)|答案(1)|浏览(155)
    • 已关闭**。此问题需要超过focused。当前不接受答案。
    • 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

22小时前关门了。
Improve this question
我正在做一个程序,使一个窗口,打印窗口中的十六进制代码,并使一个按钮。我想做的是设置背景的十六进制代码的颜色,使按钮改变背景时,按下。这里是我的代码:

import java.awt.*;
import javax.swing.*;
import java.util.Random;
import java.awt.event.*;
 
class Main{
    /**
     * @param args
     */
    public static void main(String[] args){
        Random obj = new Random();
        int rand_num = obj.nextInt(0xffffff + 1);
        String colorCode = String.format("#%06x", rand_num);
 
        JFrame frame = new JFrame();
        JLabel textLabel = new JLabel();
        JButton button1 = new JButton("New Color");
       
        frame.setTitle("Color Generator");
        frame.setSize(500, 500);
        //add a method to have colorCode become the background color
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setVisible(true);
 
        textLabel.setText(colorCode);
        textLabel.setFont(new Font("Veranda", Font.PLAIN, 40));
        frame.add(textLabel);
 
        frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
        frame.getRootPane().setDefaultButton(button1);
        frame.add(button1);
    }
}
xriantvc

xriantvc1#

你可以这样做。像你所做的那样把你的代码堆到main中不是一个好主意。我将把它留给你去改变。

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

public class Main {
    /**
     * @param args
     */
    public static void main(String[] args) {
        Random obj = new Random();
        int rand_num = obj.nextInt(0xffffff + 1);
        String colorCode = String.format("#%06x", rand_num);

        JFrame frame = new JFrame();
        JLabel textLabel = new JLabel();
        JButton button1 = new JButton("New Color");

        frame.setTitle("Color Generator");
        frame.setSize(500, 500);
        // add a method to have colorCode become the background color
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        textLabel.setText(colorCode);
        textLabel.setFont(new Font("Veranda", Font.PLAIN, 40));

        frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
        frame.getRootPane().setDefaultButton(button1);
        frame.add(textLabel);
        frame.add(button1);
        button1.addActionListener(e -> { 
            frame.getContentPane().setBackground(Color.decode(textLabel.getText()));
        });
        frame.setVisible(true);
    }
}

相关问题