我认为我的actionListeners
有些混乱。我应该有两个按钮块。
第一个面板是16个按钮x 16个按钮(总共256个按钮)。第二个面板是8个按钮x 2个按钮(总共16个按钮)我能够将“ColorChooser”中的“蓝色”传递到两个面板。
但是,第二个面板应该变为RED。不是蓝色。我的第二个问题 - 第2小组看起来正确。它从1开始,然后转到16.但是,Panel 1从17开始,到256.请,谢谢你的帮助。
我还想知道为什么按钮阵列的工具提示不起作用?
再次感谢!
final JFrame MaineFrame = new JFrame("Kola Color Crapper");
MaineFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MaineFrame.setPreferredSize(new Dimension(400, 400));
final JFrame PatternGeneratorFrame = new JFrame("Pattern Generator");
PatternGeneratorFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ActionListener PatternMakerActionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
PatternGeneratorFrame.setVisible(true);
}
};
JButton PatternMakerBtn = new JButton("Make Pattern");
PatternMakerBtn.addActionListener(PatternMakerActionListener);
PatternMakerBtn.setToolTipText("This will allow you to create your own patterns 1 frame at a time.");
JPanel contentPane = new JPanel();
ActionListener myActionListener = new ActionListener() {
public void actionPerformed(ActionEvent aef) {
if (aef.getSource() instanceof JButton) {
((JButton) aef.getSource()).setBackground(ColorChooser.PassColor);
}
}
};
ActionListener ColorChooserActionListener = new ActionListener() {
public void actionPerformed(ActionEvent aee) {
if (aee.getSource() instanceof JButton) {
((JButton) aee.getSource()).setBackground(Color.red);
}
}
};
JButton button[] = new JButton[256];
JPanel GridPanel = new JPanel();
GridPanel.setBorder(BorderFactory.createLineBorder(Color.blue, 2));
GridPanel.setLayout(new GridLayout(16, 16, 10, 10));
for (int i = 0; i < button.length; i++) {
button[i] = new JButton(Integer.toString(i + 1));
button[i].addActionListener(myActionListener);
GridPanel.add(button[i]);
GridPanel.setToolTipText("lets make noise.");
}
contentPane.add(GridPanel);
JButton ColorPickerBtn[] = new JButton[16];
JPanel ActionPanel = new JPanel();
ActionPanel.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 6));
ActionPanel.setLayout(new GridLayout(2, 8, 0, 10));
for (int l = 0; l < 16; l++) {
ColorPickerBtn[l] = new JButton(Integer.toString(l+ 1));
ColorPickerBtn[l].addActionListener(ColorChooserActionListener);
ColorPickerBtn[l].setToolTipText("Choose the color you would like to use. * Colors 1-8 are static. You may change colors 9-16.");
ActionPanel.add(button[l]);
}
contentPane.add(ActionPanel);
MaineFrame.getContentPane().add(PatternMakerBtn);
PatternGeneratorFrame.setContentPane(contentPane);
PatternGeneratorFrame.pack();
PatternGeneratorFrame.setVisible(false);
MaineFrame.pack();
MaineFrame.setVisible(true);
;
}
});
}
}
}
答案 0 :(得分:0)
我解决这个问题的方法是使用一个可以监听整个帧的ActionListener。