gpt4 book ai didi

Java - 将 JFrame 的一半设置为特定颜色

转载 作者:行者123 更新时间:2023-11-30 04:08:11 24 4
gpt4 key购买 nike

我正在尝试设置 JFrame 的水平一半来显示光标所在的颜色。这就是我到目前为止所得到的。

enter code here
package finalproject;

import java.awt.Canvas;
import javax.swing.JFrame;
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Robot;
import java.awt.PointerInfo;
import javax.swing.JLabel;
import javax.swing.*;
import java.awt.event.MouseMotionListener;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.*;
public class FinalProject {
public static void main(String[] args) throws AWTException {
JFrame frame = new JFrame();
JLabel rgbLabel = new JLabel();
rgbLabel.setVerticalAlignment(SwingConstants.NORTH);
rgbLabel.setHorizontalAlignment(SwingConstants.CENTER);
frame.setLocationRelativeTo(null);
frame.add(rgbLabel);
rgbLabel.setAlignmentX(50);
rgbLabel.setAlignmentY(10);
rgbLabel.setVisible(true);
frame.setLocation(650, 350);
frame.setVisible(true);
frame.pack();
frame.setTitle(display.TITLE);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(display.WIDTH, display.HEIGHT);
frame.setResizable(true);
frame.setVisible(true);
while (true){
PointerInfo cursorLocation = MouseInfo.getPointerInfo();
Point position = cursorLocation.getLocation();
int x = (int)position.getX();
int y = (int)position.getY();
Robot robot = new Robot();
Color pixelColor = robot.getPixelColor(x, y);
int colorRed = pixelColor.getRed();
int colorGreen = pixelColor.getGreen();
int colorBlue = pixelColor.getBlue();
rgbLabel.setText("Red: " + colorRed + " Green: " + colorGreen + " Blue: " + colorBlue + "\n" );

}
}
public static class display {
public static final int WIDTH = 250;
public static final int HEIGHT = 135;
public static final String TITLE = "Colorblind Assistant";
}
}

我知道放

frame.getContantPane().setBackground(pixelColor);

在 while 循环下会将整个框架更改为该颜色,但我只需要框架的下半部分为该颜色。

一些帮助将不胜感激。谢谢。

最佳答案

  • 使用 MouseListener,而不是会占用 Swing 事件线程的 while (true)
  • 将所有代码从主方法中取出并放入适当的类中。 main 方法除了启动程序之外不应该执行任何操作。
  • 让您的 JFrame 在 GridLayout 中包含两个 JPanel,并通过 MouseListener 设置其中一个 JPanel 的背景。

关于Java - 将 JFrame 的一半设置为特定颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20254500/

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