У меня есть простое приложение, которое состоит из JButton и JColorChooser. Когда я нажимаю кнопку 2 появляются JColorChoosers. Позволяет выбрать цвет фона, а второй - выбрать цвет переднего плана. сохраняю каждый цвет в отдельной variable.Here мой код:Установить цвет переднего плана и фона JButton с JColorChooser
public class Slide extends JFrame{
Color bgColor;
JButton colorButton=new JButton();
JColorChooser colorPicker=new JColorChooser();
public Slide(){
JPanel panel=new JPanel();
panel.setLayout(new MigLayout("", "[][][][][]", "[][][][][][]"));
this.setContentPane(panel);
colorButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//1st color chooser for background color
bgColor=JColorChooser.showDialog(null, "Background color", null);
//2nd colorchooser appears for foreground
Color fgColor=JColorChooser.showDialog(null, "Foreground color", null);
colorButton.setBackground(bgColor);
colorButton.setForeground(fgColor);
}
});
colorButton.setText("Pick a color");
panel.add(colorButton, "cell 0 5");
this.setSize(400, 400);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String args[]){
new Slide();
}
}
Теперь мой вопрос: Можно ли свести к минимуму часть JColorChooser.I означает, что я хочу показать JColorChooser только один раз и получить цвета переднего и заднего плана от пользователя
Если вы хотите, чтобы показать его один раз - тогда только называют это один раз. Почему бы просто не проверить, установлены ли цвета, и если да, не вызывайте выбор цвета? –
Можете ли вы привести пример, основанный на этом коде? –
Вы можете добавить два 'JColorChoosers' в' JTabbedPane' и показать его в 'JOptionPane' – MadProgrammer