我正在尝试创建一个只有2个元素的简单GUI表单 - 一个简单的标签和一个按钮.按钮上显示的文字是"开始".标签默认显示为0.
当我单击"开始"按钮时,将执行以下操作:
我正在Netbeans中开发我的应用程序.
如上图所示,有2个.java文件
AGC.java的内容是:
public class AGC extends javax.swing.JFrame
{
public AGC()
{
initComponents();
}
public static void main(String args[])
{
java.awt.EventQueue.invokeLater(new Runnable() {
public void run()
{
new AGC().setVisible(true);
}
});
}
private javax.swing.JButton btnStartStop; // name of start stop button
private javax.swing.JLabel lblCounter; // name of the label
}
Run Code Online (Sandbox Code Playgroud)
Main.java的内容是:
public class Main
{
public static int count = 0;
public static boolean started = false;
}
Run Code Online (Sandbox Code Playgroud)
我想实现以下逻辑:
private void btnStartStopMouseClicked(java.awt.event.MouseEvent …Run Code Online (Sandbox Code Playgroud) 我在我的程序中使用了一个JSlider,并为它实现了一个ChangeListener.
public void stateChanged(ChangeEvent e)
{
JSlider source=(JSlider) e.getSource();
frame_value.setText(Integer.toString(source.getValue()));
//Condition to change the frame_no only when user has stopped moving the slider
if (!source.getValueIsAdjusting())
{
frame_no=(int) source.getValue()-1;
if(frame_no<0)
frame_no=0;
}
....
}
Run Code Online (Sandbox Code Playgroud)
发生的事情是,无论何时调用ChangeListener,程序都会跳过if块,然后转到代码.我不明白为什么会这样.我无法从JSlider获得正确的值.请帮忙!!
PS:我不知道这是不是这个原因,但是最近我设置了JSlider的用户界面来点击它.我不知道是否应该对此负责.这是代码:
slider.setUI(new MetalSliderUI() {
protected void scrollDueToClickInTrack(int direction) {
int value = HEVC_Analyzer.slider.getValue();
value = this.valueForXPosition(HEVC_Analyzer.slider.getMousePosition().x);
HEVC_Analyzer.slider.setValue(value);
}
});
Run Code Online (Sandbox Code Playgroud)