Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-在extern函数中更改JLabel Frontcolor_Java_Eclipse_Swing_Windowbuilder - Fatal编程技术网

Java-在extern函数中更改JLabel Frontcolor

Java-在extern函数中更改JLabel Frontcolor,java,eclipse,swing,windowbuilder,Java,Eclipse,Swing,Windowbuilder,作为Java初学者,我尝试在windowsbuilder(eclipse插件)的帮助下创建一个窗口应用程序“游戏”。 现在,当我尝试更改extern函数(allblack())中的标签时,当我按下特定按钮(窗口正确显示)时,控制台会显示以下错误: 如果有人能把它解释成“allblack()”中的代码和“Inalizalize()”中的代码一样,我将不胜感激。 谢谢 看起来变量l1和l2只存在于initialize方法中。 试试这个: public void allblack() { l1

作为Java初学者,我尝试在windowsbuilder(eclipse插件)的帮助下创建一个窗口应用程序“游戏”。 现在,当我尝试更改extern函数(allblack())中的标签时,当我按下特定按钮(窗口正确显示)时,控制台会显示以下错误:

如果有人能把它解释成“allblack()”中的代码和“Inalizalize()”中的代码一样,我将不胜感激。 谢谢


看起来变量l1和l2只存在于initialize方法中。 试试这个:

public void allblack() {
    l1.setForeground(Color.black);
    l2.setForeground(Color.black);
}

private JLabel l1,l2;
public void initialize() {

    frmDasLeiterspiel = new JFrame();
    frmDasLeiterspiel.setResizable(false);
    frmDasLeiterspiel.setTitle("Das Leiterspiel");
    frmDasLeiterspiel.setBounds(100, 100, 420, 420);
    frmDasLeiterspiel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frmDasLeiterspiel.getContentPane().setLayout(null);

    l1 = new JLabel("1");
    l1.setBackground(Color.LIGHT_GRAY);
    l1.setBounds(340, 190, 50, 50);
    l1.setHorizontalAlignment(SwingConstants.CENTER);
    frmDasLeiterspiel.getContentPane().add(l1, BorderLayout.CENTER);

    l2 = new JLabel("2");
    l2.setBackground(Color.LIGHT_GRAY);
    l2.setHorizontalAlignment(SwingConstants.CENTER);
    l2.setBounds(278, 190, 50, 50);
    frmDasLeiterspiel.getContentPane().add(l2);
    [....]
    JButton btnNewButton = new JButton("Roll the dice!");
    btnNewButton.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent arg0) {
            allblack();
        }
    });
    btnNewButton.setBounds(12, 294, 378, 25);
    frmDasLeiterspiel.getContentPane().add(btnNewButton);
    [...]
    }

您正在创建的标签是
initialize
方法的本地标签。替换
JLabel l1=新的JLabel(“1”)带有
l1=新的JLabel(“1”)
JLabel l2=新的JLabel(“2”)带有
l2=新的JLabel(“2”)以初始化实际标签。
[Pre-sampled import]
public void allblack()
 {
    l1.setForeground(Color.black);
    l2.setForeground(Color.black);
 }
 public void initialize() {

    frmDasLeiterspiel = new JFrame();
    frmDasLeiterspiel.setResizable(false);
    frmDasLeiterspiel.setTitle("Das Leiterspiel");
    frmDasLeiterspiel.setBounds(100, 100, 420, 420);
    frmDasLeiterspiel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frmDasLeiterspiel.getContentPane().setLayout(null);

    JLabel l1 = new JLabel("1");
    l1.setBackground(Color.LIGHT_GRAY);
    l1.setBounds(340, 190, 50, 50);
    l1.setHorizontalAlignment(SwingConstants.CENTER);
    frmDasLeiterspiel.getContentPane().add(l1, BorderLayout.CENTER);

    JLabel l2 = new JLabel("2");
    l2.setBackground(Color.LIGHT_GRAY);
    l2.setHorizontalAlignment(SwingConstants.CENTER);
    l2.setBounds(278, 190, 50, 50);
    frmDasLeiterspiel.getContentPane().add(l2);
    [....]
    JButton btnNewButton = new JButton("Roll the dice!");
    btnNewButton.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent arg0) {
            allblack();
        }
    });
    btnNewButton.setBounds(12, 294, 378, 25);
    frmDasLeiterspiel.getContentPane().add(btnNewButton);
    [...]
    }
public void allblack() {
    l1.setForeground(Color.black);
    l2.setForeground(Color.black);
}

private JLabel l1,l2;
public void initialize() {

    frmDasLeiterspiel = new JFrame();
    frmDasLeiterspiel.setResizable(false);
    frmDasLeiterspiel.setTitle("Das Leiterspiel");
    frmDasLeiterspiel.setBounds(100, 100, 420, 420);
    frmDasLeiterspiel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frmDasLeiterspiel.getContentPane().setLayout(null);

    l1 = new JLabel("1");
    l1.setBackground(Color.LIGHT_GRAY);
    l1.setBounds(340, 190, 50, 50);
    l1.setHorizontalAlignment(SwingConstants.CENTER);
    frmDasLeiterspiel.getContentPane().add(l1, BorderLayout.CENTER);

    l2 = new JLabel("2");
    l2.setBackground(Color.LIGHT_GRAY);
    l2.setHorizontalAlignment(SwingConstants.CENTER);
    l2.setBounds(278, 190, 50, 50);
    frmDasLeiterspiel.getContentPane().add(l2);
    [....]
    JButton btnNewButton = new JButton("Roll the dice!");
    btnNewButton.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent arg0) {
            allblack();
        }
    });
    btnNewButton.setBounds(12, 294, 378, 25);
    frmDasLeiterspiel.getContentPane().add(btnNewButton);
    [...]
    }