I'm working on a project on JAVA Swing. I don't have much experience in JAVA, and I need some help from you guys.
I'm using frame.pack() so it takes the optimal size as required. My screenTwo can change depending on the input from ScreenOne. I've used frame.setMaximumSize(new Dimension(1300, 500)) but it doesn't seem to be working.
If the frame gets bigger, it overlaps with the Taskbar, and I don't want that, so it should be a bit smaller than the total Screen size. How to achieve this?
EDIT:
Code:
public class Test {
private static JFrame frame ;
private JRadioButton[] radioButton;
public static void main(String[] args) {
Test t = new Test();
t.go();
frame.pack();
frame.setMaximumSize(new Dimension(1300, 600));
frame.setResizable(false);
frame.setVisible(true);
Dimension si = frame.getContentPane().getSize();
System.out.println(si); //Output: java.awt.Dimension[width=934,height=751]
}
public void go()
{
frame = new JFrame();
JPanel panel1 = new JPanel();
frame.getContentPane().add(panel1);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel1.setLayout(new BorderLayout(0, 20));
Font font = new Font("Times New Roman", Font.PLAIN, 20);
JPanel panel2 = new JPanel();
panel2.setLayout(new FlowLayout(FlowLayout.CENTER, 50, 1));
panel2.add(new JLabel(" Flight ID"));
panel2.add(new JLabel(" Departure"));
panel2.add(new JLabel(" Arrival "));
panel2.add(new JLabel(" Transit Time "));
panel2.add(new JLabel("Total Duration "));
panel1.add(BorderLayout.NORTH, panel2);
JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayout(0, 1));
GridBagConstraints c = new GridBagConstraints();
int comboSize = 15, i;
JPanel panelCombo[] = new JPanel[comboSize];
ButtonGroup group = new ButtonGroup();
radioButton = new JRadioButton[comboSize];
/***
Adding a bunch of components in here
***/
for(i=0; i<comboSize; i++) {
panelCombo[i] = new JPanel();
panelCombo[i].setLayout(new GridBagLayout());
c.gridx = 0;
c.gridy = 0;
c.insets = new Insets(0, 50, 0, 50);
panelCombo[i].add(new JLabel("Flight 1 ID"), c);
c.gridx++;
panelCombo[i].add(new JLabel("Dept Time"), c);
c.gridx++;
panelCombo[i].add(new JLabel("Arr Time"), c);
c.gridx++;
c.gridheight = 4;
panelCombo[i].add(new JLabel("Total time"), c);
c.gridx++;
panelCombo[i].add(new JLabel("Duration"), c);
c.gridx++;
radioButton[i] = new JRadioButton();
panelCombo[i].add(radioButton[i], c);
group.add(radioButton[i]);
c.gridheight = 1;
c.gridx = 0;
c.gridy++;
panelCombo[i].add(new JLabel("Depar to Arrival"), c);
c.gridx++;
panelCombo[i].add(new JLabel("Date"), c);
c.gridx = 0;
c.gridy++;
panelCombo[i].add(new JLabel("Flight 2 ID"), c);
c.gridx++;
panelCombo[i].add(new JLabel("Dept Time"), c);
c.gridx++;
panelCombo[i].add(new JLabel("Arr Time"), c);
c.gridx = 0;
c.gridy++;
panelCombo[i].add(new JLabel("Dept to Arrival"), c);
c.gridx++;
panelCombo[i].add(new JLabel("Date"), c);
panelCombo[i].setBackground(Color.GREEN);
panel3.add(panelCombo[i]);
panelCombo[i].setBorder(BorderFactory.createLineBorder(Color.BLACK));
}
JScrollPane scroll = new JScrollPane(panel3);
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
panel1.add(BorderLayout.CENTER, scroll);
}
}