- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习更改监听器,并想了解为什么我的部分代码在用户移动 slider 时没有触发更改监听器。
这里是听者。一切都在同一个方法中:
ChangeListener lst = new ChangeListener() {
public void stateChanged(ChangeEvent e) {
showDate();
}
};
m_slDay = new JSlider(JSlider.HORIZONTAL, 1, maxDays,
m_calendar.get(Calendar.DAY_OF_MONTH));
m_slDay.setPaintLabels(true);
m_slDay.setMajorTickSpacing(5);
m_slDay.setMinorTickSpacing(1);
m_slDay.setPaintTicks(true);
// This line of code seems to work.
m_slDay.addChangeListener(lst);
p = new JPanel();
p.setBorder(new TitledBorder(new EtchedBorder(), "Day"));
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
p.add(Box.createRigidArea(RIGID_DIMENSION));
p.add(m_slDay);
p.add(Box.createRigidArea(RIGID_DIMENSION));
p1.add(p);
m_slDayOfWeek = new JSlider(JSlider.HORIZONTAL, 1, maxDaysOfTheWeek,
m_calendar.get(Calendar.DAY_OF_WEEK));
m_slDayOfWeek.setPaintLabels(true);
m_slDayOfWeek.setMajorTickSpacing(1);
m_slDayOfWeek.setMinorTickSpacing(1);
m_slDayOfWeek.setPaintTicks(true);
// This one is not working and I'm not sure why it's happening.
m_slDayOfWeek.addChangeListener(lst);
p = new JPanel();
p.setBorder(new TitledBorder(new EtchedBorder(), "Day of Week"));
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
p.add(Box.createRigidArea(RIGID_DIMENSION));
p.add(m_slDayOfWeek);
p.add(Box.createRigidArea(RIGID_DIMENSION));
p1.add(p);
最佳答案
正如您的 showDate()
中的评论所指出的,您的代码部分似乎有问题。方法,这个东西在这段代码中完美地工作:
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class SliderChangeEffect extends JFrame
{
private JSlider slider;
private int count = 0;
private ChangeListener changeListener = new ChangeListener()
{
public void stateChanged(ChangeEvent ce)
{
System.out.println(count++);
}
};
private void createAndDisplayGUI()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationByPlatform(true);
JPanel contentPane = new JPanel();
contentPane.setOpaque(true);
slider = new JSlider(0, 10, 5);
slider.setMajorTickSpacing(2);
slider.setMinorTickSpacing(1);
slider.addChangeListener(changeListener);
contentPane.add(slider);
getContentPane().add(contentPane);
pack();
setVisible(true);
}
public static void main(String... args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new SliderChangeEffect().createAndDisplayGUI();
}
});
}
}
关于java - ChangeListener 没有触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9824639/
我想添加到属性监听器,等待此监听器被调用并删除此监听器。所以我写了下面的代码: ChangeListener listener = (observable, oldValue, newValu
我正在学习更改监听器,并想了解为什么我的部分代码在用户移动 slider 时没有触发更改监听器。 这里是听者。一切都在同一个方法中: ChangeListener lst = new ChangeLi
假设我们有一个带有 fx:include 的根窗口: startwindow.fxml的代码: 单击按钮将窗口更改为新窗口。它的 Controller ,StartW
当我编码时,我添加了以下代码: nameComboBox.valueProperty().addListener(new ChangeListener() { @Override
代码如下: package sample; import javafx.beans.InvalidationListener; import javafx.beans.Observable; impo
我想概括以下模式: setChangeListener = c -> { try { // do something dangerous } catch (final IOEx
我在 slider 上有一个简单的更改监听器。任何人都可以解释为什么当我点击一个新位置时它被解雇了 3 次。在我编写代码将先前的值保存在某处以查看它是否真的改变之前,我想看看是否有另一种方法可以弄清楚
我对 Java 很陌生,在仔细研究文档后,我发现自己陷入了困境。 我有一个小程序,使用 JavaFX MediaPlayer播放 wav 文件。我的播放器对象有一个 currentTimeProper
我有一个 JavaFX 应用程序,其中有一个并发任务。当任务运行时,我想将来自 updateMessage() 的消息附加到 TextArea 因为绑定(bind)不会将新文本附加到 TextArea
场景: 我有一个容器对象,它包含所有继承自 MyContainedObject 类的混合对象。容器类的消费者不能直接访问包含的对象,但我有兴趣知道它们何时发生变化。 设计决策: 监听特定类类型的 Ch
我试图从官方文档的“通知”部分了解 Realm 中的通知类型,当我在多个托管对象中使用 RealmObject addChangeListener 时,只有一个对象发生变化时,所有这些通知类型都会被调
我需要检测所选标签何时发生变化,并获取其索引。 以下代码有效,但它触发 println 的次数与当前加载的选项卡数量一样多: tabbedPane.addChangeListener(new Chan
在我的 JavaFX 应用程序中,我在 TreeView 中使用 Checkboxes 来更改节点的可见性。 选中复选框 = 一些节点可见 取消选中复选框 = 一些节点不可见 但是,在特殊情况下,应该
我只关心属性是否已更改,而不是新值。 注册 InvalidationListener 而不是 ChangeListener 是否有利? 我假设对属性的更改首先会使该属性无效并通知所有无效监听器。仅当注
我不知道为什么会收到警告“来自类型 new ChangeListener(){} 的方法 tabChanged(ChangeEvent) 从未在本地使用” private void setUpTabb
我正在寻找代码中的功能,以便我可以在几秒钟内输入完整内容simpleTextField 中的名称,我需要它,因为如果我输入例如: 我输入 R - 然后方法改变正在执行它的任务 我输入 RR - 然后方
我确实有一个由多个可观察的 SimpleDoubleProperty 组成的模型,我现在有一个程序,它根据可观察属性的变化运行一个函数。 我现在有一个函数calculateThings,它会在变化时被
如何打印顶部的JLabel? import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame;
我在舞台上添加了一个表,但无法获得点击监听器来触发它: Table table = new Table(); table.setX(0); table.setY(0); table.setWidth(
我希望 ObservableList 中有一个粗体的标题。我将其设置为粗体,但在选择它时会遇到异常 block ,因为它不是字符串。我可以将其他项目设为文本,但 ChangeListener 需要一个
我是一名优秀的程序员,十分优秀!