Estou tentando criar a seguinte tela:
O tamanho do JPanel principal é sempre a resolução do atual monitor. Todavia, queria uma sugestão sobre como deixar o tamanho dos quadrados responsivo, também. Mas não faço ideia de como.
Código:
public ViewerController() {
gerarTela();
}
private void gerarTela() {
var jframe = geraJframe();
var mainPanel = new JPanel(new FlowLayout());
var factory = new MediaPlayerFactory();
for (int i = 0; i < 16; i++) {
var canvas = new Canvas();
canvas.setBackground(Color.BLACK);
var painelVideoTemp = new JPanel();
painelVideoTemp.setPreferredSize(new Dimension(450, 255)); //TODO RESPONSIVIDADE
painelVideoTemp.setBackground(Color.BLUE);
painelVideoTemp.setLayout(new BorderLayout());
painelVideoTemp.add(canvas, BorderLayout.CENTER);
var player = factory.newEmbeddedMediaPlayer();
player.setVideoSurface(factory.newVideoSurface(canvas));
players.add(player);
mainPanel.add(painelVideoTemp);
}
mainPanel.setBackground(Color.LIGHT_GRAY);
jframe.add(mainPanel, BorderLayout.CENTER);
jframe.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
stop();
super.windowClosing(e);
}
});
jframe.setVisible(true);
}
private JFrame geraJframe() {
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension d = tk.getScreenSize();
JFrame jFrame = new JFrame();
jFrame.setMinimumSize(new Dimension(d.width, d.height));
jFrame.setLayout(new BorderLayout());
jFrame.setIconImage(tk.getImage(getClass().getResource("/imgs/icon.png")));
jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
return jFrame;
}
Alguma ideia?