Я нашел аналогичный вопрос здесь:
overriding methods without subclassing in JavaJava метод коррекции из другого класса без наследования
Но моего немного по-другому, у меня есть два класса, на основе 1 GUI, а другие только методы для изменения элементов в первом класс. Если он просто редактирует основную функцию, я не вижу проблем, но теперь я хочу переопределить jbutton в методе первого класса из второго класса, не наследуя его. Где мне нужно начинать?
У меня есть временное решение, которое заключается в том, что второй класс расширяет JButton, переопределяет метод, который я хочу, и добавляет этот класс в мой GUI-класс (анонимный объект или нет, не имеет значения). Но я хочу найти способ найти способ ответить на вопрос, возможно ли это? Спасибо :)
Редактировать
Вот пример кода:
Первый класс, как это только кнопка в JFrame, я только добавить их в конструкторе:
ButtonOverrider bo=new ButtonOverrider();
-> это подмены класс
button=bo.overridePaintComponent(bo);
// сначала попробуйте
button=bo.overridePaintComponent();
// второй попытки
bo.overridePaintComponent(bo);
// третий попробовать
И вот метод ButtonOverrider:
public JButton ButtonOverrider(JButton button) {
button = new JButton() {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g.create();
GradientPaint gp = new GradientPaint(0, 0,
Color.blue.brighter().brighter(), 0, getHeight(),
getBackground().darker().darker());
g2.setPaint(gp);
g2.fillRect(0, 0, getWidth(), getHeight());
g2.dispose();
super.paintComponent(g);
super.setContentAreaFilled(false);
super.setFocusPainted(false);
super.setBorder(new LineBorder(Color.yellow, 2));
super.setText("Shuro");
}
};
return button;
}
вы можете разместить минимальный образец кода, показывающий, что вы хотите –
'overriding' в своем формальном смысле невозможен без подкласса по моему скромному мнению – pinkpanther
@RC. вопрос обновлен –