Я разрабатываю текстовый редактор, в котором у меня есть боковая панель и строка меню для форматирования текста, например, вы можете сделать текст полужирным, пройдя по меню или нажав кнопку. Но при нажатии кнопки она остается нажатой, даже если я нажимаю ее снова. Если я делаю это через строку меню, он нажимает, а затем нажимает, когда снова выбираю полужирный. Итак, через строку меню работает, при выполнении на боковой панели не работает.
Код для нажатия и нажатия кнопки, это у меня на боковой панели (JPanel)
public void press(JButton button){
System.out.println("Pressed: " + button.getModel().isPressed());
if(button.getModel().isPressed()){
System.out.println("1");
button.getModel().setPressed(false);
}
else{
System.out.println("2");
button.getModel().setPressed(true);
System.out.println("Pressed2: " + button.getModel().isPressed());
}
}
В моем классе представления рендеринга у меня есть этот список действий
private public void actionPerformed(ActionEvent e){
String action = e.getActionCommand();
if(action.equals("New")){
newTA();
}else if(action.equals("Bold") || action.equals("B")){
contr.bold();
sidePanel.press(sidePanel.bold);
}
}
Где «Полужирный» проходит через меню, а «B» - через боковую панель. И меню, и боковая панель переключают выделение жирным шрифтом, просто чтобы кнопка на боковой панели не была нажата при повторном нажатии.
У кого-нибудь была подобная проблема, и может быть, есть решение?