В основном, я извлекаю изображения из видео в реальном времени как BufferedImages и отображаю их в JFrame после обработки. К сожалению, я очень плохо отношусь к качелям, поэтому, пока изображения появляются в JFrame, как предполагалось, он генерирует новый JFrame для каждого нового изображения (24 в секунду).Доступ к BufferedImages для обновления компонентов JFrame
я посылаю BufferedImages к ГИП с:
UserInterface.main(currentFrame);
Где они получили мой GUI класса, который является по существу JLabel, содержащий текущее изображение внутри JPanel внутри JFrame:
public class UserInterface extends JFrame {
private JPanel contentPane;
public static void main(BufferedImage inputImage) throws IOException
{
UserInterface frame = new UserInterface(inputImage);
frame.setVisible(true);
}
public UserInterface(BufferedImage inputImage) throws IOException
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(50, 50, 1024, 768);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel imageLabel = new JLabel(new ImageIcon(inputImage));
add(imageLabel);
imageLabel.setBounds(11, 60, 480, 360);
contentPane.add(imageLabel);
}
Может ли кто-нибудь посоветовать, как разбить это, чтобы создать только 1 JFrame, в котором я могу отображать все изображения динамически?
'contentPane.setLayout (null);' Java GUIs должны работать с различными ОС, размером экрана, разрешением экрана и т. Д. Таким образом, они не способствуют идеальной компоновке пикселей. Вместо этого используйте диспетчеры макетов или [их комбинации] (http://stackoverflow.com/a/5630271/418556), а также макет и границы для [пробела] (http://stackoverflow.com/a/17874718/ 418556). –