#java #user-interface #video
#java #пользовательский интерфейс #Видео
Вопрос:
У меня есть холст, а внутри холста у меня есть веб-камера. Поверх видеоизображения я хочу разместить «Кнопку» и прикрепить событие, чтобы у меня был контроль над полноэкранным режимом и свести его к минимуму. Но этот метод выдает ошибку, как это исправить?
public static void main(String[] args)
{
JFrame frame = new JFrame("Overlay");
frame.setBackground(Color.RED);
// Canvas, to have a video and on top a button
final Canvas canvas = new Canvas();
Button button = new Button(canvas); // ERROR
button.setBounds(10,10, 100, 40);
canvas.setPreferredSize(new Dimension(200, 200));
// Layout
JPanel content = new JPanel(new GridLayout(2,2));
content.add(canvas);
content.add(new JButton("test")); // for empty cell
// Show
frame.add(content);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
// Third party tools to capture the webcam, and plugin to our canvas
final Video video = player.getElementByName("gl");
XOverlay.wrap(video).setWindowID(canvas);
}
Комментарии:
1. Сообщение об ошибке довольно пояснительное. Этот конструктор не существует. Сначала вы должны создать кнопку, а затем добавить ее в контейнер (кстати, canvas — это не контейнер). И вы смешиваете компоненты swing и awt. Будьте очень осторожны в том, что вы делаете.
Ответ №1:
Выдает ошибку, потому что в Button
классе нет конструктора, который принимает canvas
в качестве аргумента.Вы можете добавить свою кнопку в ту же JPanel, куда вы добавляете свой холст.
Комментарии:
1. Добавление в JPanel отделяет кнопку от наложения. Итак, видео отдельно, а кнопка отдельно. У меня запущено полноэкранное видео, и мне нужна кнопка в правом верхнем углу.
Ответ №2:
canvas.add(button);
или
canvas.add(button, 55, 30);