我试图设置一个系统,当我按下按钮时,JLabel文本会改变,但我似乎无法使其工作。我已经测试了操作监听器通过执行system.out.println(test);来工作。它工作正常,但是当试图更改JComponent文本时,它不工作。我已经搜索了答案,但没有找到任何有用的答案。
主要类别:
package com.fcs.app;
public class A {
public static void main(String args[]) {
window w = new window();
w.drawWindow();
}
}
JFrame和JPanel类:
package com.fcs.app;
import java.awt.*;
import javax.swing.*;
public class window extends JPanel {
JFrame jf = new JFrame();
JPanel jp = new JPanel();
JButton b1 = new JButton();
JTextField tf1 = new JTextField();
JTextField tf2 = new JTextField();
JLabel plus = new JLabel();
JLabel equals = new JLabel();
JLabel rt = new JLabel();
int Result = 10;
public void drawWindow() {
//JFrame setup
jf.setSize(400, 400);
jf.setUndecorated(true);
jf.setLayout(null);
jf.setContentPane(jp);
jf.setLocation(100, 100);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
//JPanel setup
jp.setSize(400, 400);
jp.setLocation(0, 0);
jp.setBackground(Color.WHITE);
jp.add(b1);
jp.add(tf1);
jp.add(tf2);
jp.add(plus);
jp.add(equals);
jp.add(rt);
jp.setLayout(null);
jp.setVisible(true);
//JButton setup
b1.setFont(new Font("Times", Font.PLAIN, 15));
b1.setText("Calculate!");
b1.setSize(100, 40);
b1.setLocation(150, 350);
b1.addActionListener(new Listener());
b1.setVisible(true);
//TextField 1 setup
tf1.setSize(120, 50);
tf1.setLocation(140, 20);
tf1.setFont(new Font("Times", Font.PLAIN, 25));
tf1.setHorizontalAlignment(JTextField.CENTER);
tf1.setVisible(true);
//TextField 2 setup
tf2.setSize(120, 50);
tf2.setLocation(140, 120);
tf2.setFont(new Font("Times", Font.PLAIN, 25));
tf2.setHorizontalAlignment(JTextField.CENTER);
tf2.setVisible(true);
//Plus sign Setup
plus.setSize(120, 50);
plus.setLocation(140, 70);
plus.setHorizontalAlignment(JLabel.CENTER);
plus.setFont(new Font("Times", Font.PLAIN, 40));
plus.setText("+");
plus.setVisible(true);
//Equals sign Setup
equals.setSize(120, 50);
equals.setLocation(140, 170);
equals.setHorizontalAlignment(JLabel.CENTER);
equals.setFont(new Font("Times", Font.PLAIN, 40));
equals.setText("=");
equals.setVisible(true);
//Result text
rt.setSize(400, 50);
rt.setLocation(0, 250);
rt.setHorizontalAlignment(JLabel.CENTER);
rt.setFont(new Font("Times", Font.PLAIN, 60));
rt.setText("");
rt.setVisible(true);
}
}
ActionListener类:
package com.fcs.app;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Listener implements ActionListener {
window w = new window();
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
w.rt.setText("Test");
}
}
您正在创建Windows的新引用,例如窗口w=new windows();它将创建一个新的窗口实例,并且您正在尝试更改新创建的窗口。尝试在窗口类中传递您以前创建的窗口对象,或者在窗口类中实现匿名ActionListener。
b1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
rt.setText("Test");
}
}
});
问题内容: 有什么方法可以在属性更改时触发事件(可能是自定义的)? 比方说,当IMG src更改或DIV的innerHtml吗? 问题答案: 注意:突变事件已从标准中删除,现已弃用。有关如何使用其替代内容的信息,请参见其他答案或文档。 您指的是DOM突变事件。浏览器对这些事件的支持较差(但正在改善)。jQuery的MutationEvents插件可能会为您提供一些帮助。
当被监控目录中的文件的ReadOnly属性更改时,FileSystemMonitor似乎没有触发“更改”事件(没有其他事件)。 这是我的测试代码: 使用该代码,我接收到很多“更改”事件,例如,如果修改时间戳已更改,但如果我更改任何标准属性(如ReadOnly或Hidden),则不会。 我错过了什么,还是我击中了一个“特征”?
问题内容: 我正在尝试在Java Swing中构建MVC应用程序。我有一个包含四个JComboBox的JPanel,并且此JPanel嵌入到父JPanel中。父级JPanel除了子级JPanel之外,还具有其他控件。 每当我更改JComboBoxes的值时,子级JPanel的模型就会正确更新(它基本上是一个日期选择器,每个年,月,日,日和小时中都有一个组合框)。我无法弄清楚的是,每当更改了一个JC
我有一个组件,用ComponentFactoryResolver创建另一个组件。它似乎工作得很好,我可以通过@input访问数据。问题是在组件启动或数据更改时从不调用ngOnChanges。但是,如果我用HTML中的选择器以正常方式创建组件,它就会触发。但这不是动态的,所以剩下的是ComponentFactoryResolver。这是正常行为吗? 我的父组件有它的输入: @ViewChild(My
我正在使用JPanel(更改其组件),但我想从外部JFrame更改它。 对不起,我用Netbeans制作了这段代码(我知道它放了一些不需要的东西来回答这个问题),并尝试清理编辑它,因为真正的代码它更大 这里是JPanel的代码,名称为'myPanel'。 框架!!! 当是从JPanel(review INNER CALL)执行时,它可以工作!但是从JFrame(review//outer CALL
我有一个在事件上触发的可运行文件。我试图从事件中获取列表并清除它,但将列表放在事件期间创建的实体的元数据存储中。到目前为止,我已经尝试过: 注意:这个类实现了一个事件监听器。 和(仅最后一节): 在顶部,它不会清除事件。getDrops()并将把列表放入实体的元数据中,复制事件。getDrops()。在下面的示例中,它将清除事件。getDrops(),但不会将列表放入实体的元数据中,从而擦除事件。