gpt4 book ai didi

Java 图形用户界面组件

转载 作者:行者123 更新时间:2023-12-02 06:13:50 25 4
gpt4 key购买 nike

所以我创建了 3 个不同的类,一个用于构造文本字段,一个用于标签,一个用于 slider 。我遇到的问题是,在 slider 监听器中,如果设置为 1(共 3 个),则将标签设置为“randomInt + randomInt”,我知道如何随机化数字,它只是更改标签的文本,即在不同的类(class)制作的。这是我的主要 fnctn ,后面是两个类:

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
public class driver
{
public static void main(String[] args)
{
colorfulLabel blueLabel = new colorfulLabel("", Color.yellow);
colorfulTextField redTextField = new colorfulTextField(Color.red,15);
RatingSlider mathSlide = new RatingSlider(JSlider.HORIZONTAL , 0, 3, 0);

JFrame frame = new JFrame("Math");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.add(blueLabel);
panel.add(redTextField);
panel.add(mathSlide);
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
<小时/>
import javax.swing.*;
import java.awt.*;
public class colorfulLabel extends JLabel
{
//constructor uses one color parameter to respresent bg color
//creates label using bg color
//calls parent constructor using super()
//private Color color;
public colorfulLabel(String text,Color bg){
super(text);
setBackground(bg);
setOpaque(true);
}
}
<小时/>
//RatingSlider
import javax.swing.*;
import java.awt.*;
import java.util.Random;
import javax.swing.event.*;
public class RatingSlider extends JSlider
{
Random generator = new Random();
private JSlider difficultySlider;
//accepts horizontal paramater, a min, a max, and starting point for slider
public RatingSlider(int horiz, int start, int max, int min){
super(horiz, start, max, min);

difficultySlider = new JSlider(horiz, start, max, min);
difficultySlider.setMajorTickSpacing(1);
difficultySlider.setMinorTickSpacing(0);

setPaintTicks(true);
setPaintLabels(true);
difficultySlider.setAlignmentX(Component.LEFT_ALIGNMENT);

JPanel Slide = new JPanel();
BoxLayout layout = new BoxLayout(Slide, BoxLayout.Y_AXIS);
Slide.setLayout(layout);
Slide.add(difficultySlider);
SliderListener listener = new SliderListener();

difficultySlider.addChangeListener(listener);
}
private class SliderListener implements ChangeListener
{
public void stateChanged(ChangeEvent event)
{
int num1, num2;
String lblString = "", num_1, num_2;
if(difficultySlider.getValue() ==1)
{
num1 = generator.nextInt();
num2 = generator.nextInt();
lblString = (num1 + " + " + num2);
}

}
}

}

现在我只需将colorfulLabel 的文本设置为lblString,但我不知道如何在不创建新对象的情况下做到这一点

最佳答案

我认为你可以只使用 .setText("") 方法,它应该这样做,因为你已经扩展了 JLabel 类。但坦率地说,您可以使用 Builder 设计模式,您不需要扩展任何类,它基本上应该适合您。

关于Java 图形用户界面组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21654300/

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