Метод setVisible () для поля не существует, вам нужно получить ссылку на метод setVisible (boolean) (по имени и типам параметров) и затем вызвать его:
public static void main(String[] args) throws Exception {
TestApplication application = new TestApplication();
Field field = TestApplication.class.getDeclaredField("button1");
// This will allow us to access the button1 field even if it's private
field.setAccessible(true);
Method method = JButton.class.getMethod("setVisible", Boolean.TYPE);
Object button = field.get(application);
method.invoke(button, Boolean.FALSE);
}
public static class TestApplication {
private JButton button1 = new JButton();
}
Вам нужен экземпляр чего-то, с чего можно начать, если вы начинаете с объекта, владеющего вашей кнопкой, вы можете получить его кнопку через поле, а затем вызвать метод.Если вы начинаете с экземпляра кнопки, вы можете вызвать метод.
Обратите внимание, что рефлексия кажется здесь запутанным способом, эквивалентным будет просто:
TestApplication application = new TestApplication();
application.button1.setVisible(false);