Java-在extern函数中更改JLabel Frontcolor
作为Java初学者,我尝试在windowsbuilder(eclipse插件)的帮助下创建一个窗口应用程序“游戏”。 现在,当我尝试更改extern函数(allblack())中的标签时,当我按下特定按钮(窗口正确显示)时,控制台会显示以下错误: 如果有人能把它解释成“allblack()”中的代码和“Inalizalize()”中的代码一样,我将不胜感激。 谢谢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
看起来变量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);
[...]
}