gpt4 book ai didi

java - JSlider ChangeListener 值到 JTextArea

转载 作者:太空宇宙 更新时间:2023-11-04 07:47:07 25 4
gpt4 key购买 nike

我需要更改什么来制作此代码,以便 JTextArea 显示 JSlider 的最终值?目前它会打印 slider 去过的所有位置。我只是希望它在 JTextArea 中显示 slider 的最终位置,而不是它去过的所有数字。

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.event.*;


public class SliderDemo extends JPanel
implements
WindowListener,
ChangeListener {
//Set up animation parameters.
static final int FPS_MIN = 0;
static final int FPS_MAX = 30;
static final int FPS_INIT = 15; //initial frames per second


//This label uses ImageIcon to show the doggy pictures.


public SliderDemo() {
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));



//Create the label.
JLabel sliderLabel = new JLabel("Frames Per Second", JLabel.CENTER);
sliderLabel.setAlignmentX(Component.CENTER_ALIGNMENT);

//Create the slider.
JSlider framesPerSecond = new JSlider(JSlider.HORIZONTAL,
FPS_MIN, FPS_MAX, FPS_INIT);


framesPerSecond.addChangeListener(this);

//Turn on labels at major tick marks.

framesPerSecond.setMajorTickSpacing(10);
framesPerSecond.setMinorTickSpacing(1);
framesPerSecond.setPaintTicks(true);
framesPerSecond.setPaintLabels(true);
framesPerSecond.setBorder(
BorderFactory.createEmptyBorder(0,0,10,0));
Font font = new Font("Serif", Font.ITALIC, 15);
framesPerSecond.setFont(font);

add(sliderLabel);
add(framesPerSecond);

setBorder(BorderFactory.createEmptyBorder(10,10,10,10));}



/** Add a listener for window events. */
void addWindowListener(Window w) {
w.addWindowListener(this);
}

//React to window events.


public void windowOpened(WindowEvent e) {}
public void windowClosing(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}

/** Listen to the slider. */
public void stateChanged(ChangeEvent e) {
JSlider source = (JSlider)e.getSource();
if (!source.getValueIsAdjusting()) {
int fps = (int)source.getValue();


String rick = Integer.toString(fps);

JTextArea bob = new JTextArea();
add(bob);

bob.setText(rick);




}
}


private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("SliderDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SliderDemo animator = new SliderDemo();

//Add content to the window.
frame.add(animator, BorderLayout.CENTER);

//Display the window.
frame.pack();
frame.setVisible(true);

}

public static void main(String[] args) {
/* Turn off metal's use of bold fonts */
UIManager.put("swing.boldMetal", Boolean.FALSE);



javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}

@Override
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub

}

}

最佳答案

每次状态发生变化时,您都会添加一个新的 JTextArea:

JTextArea bob = new JTextArea();
add(bob);

相反,只需在 SliderDemo 构造函数中添加一次 JTextArea 并简单地使用:

bob.setText(...)

在您的ChangeListener中。

关于java - JSlider ChangeListener 值到 JTextArea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15122199/

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