Вот, чуток оптимизировал код, ну тоисть уже с чем-то разобрался, но все равно не срабатывает JScrollPane. В данном случае она нужна и не появляется, а если поставить, чтоб всегда стояла, то все равно не работает. Переделал левую колонку со SpringLayout -интуитивно понятней. Как мне убрать отступ между trenn_panel2 и scr_panel? И еще, скажите пожалуйста, если вручную собирать интерфейс - нужно всегда указывать предпочтительные размеры всего? Или например я в панель добавил 50 меток, и они заняли там все пространство. Код. | Код | import java.awt.BorderLayout; import java.awt.Color; import java.awt.ComponentOrientation; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridLayout;
import javax.swing.BorderFactory; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.ScrollPaneConstants; import javax.swing.SpringLayout; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException;
public class CopyOfV_TestWin extends JFrame { private JPanel window_panel = new JPanel(); private JPanel left_panel = new JPanel(); private JPanel content_panel = new JPanel();
public static void main(String[] args) { new CopyOfV_TestWin();
} public CopyOfV_TestWin(){ window(); } private void window(){ this.setPreferredSize(new Dimension(1024, 768)); this.setMinimumSize(new Dimension(1024, 768)); this.setLocation(200, 100); this.setContentPane(window_panel); //this.setResizable(false);
window_panel.setLayout(new FlowLayout()); window_panel.setPreferredSize(new Dimension(1024, 722)); window_panel.setMinimumSize(new Dimension(1024, 722)); left_panel.setPreferredSize(new Dimension(124,722)); content_panel.setPreferredSize(new Dimension(874,722)); left_panel.setBackground(Color.lightGray); content_panel.setBackground(Color.yellow); window_panel.add(left_panel); window_panel.add(content_panel); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); leftPanel(); try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); } setVisible(true); } private void leftPanel (){ SpringLayout sl = new SpringLayout(); JPanel time_panel = new JPanel(); JPanel trenn_panel1 = new JPanel(); JPanel label_panel = new JPanel(); JPanel trenn_panel2 = new JPanel(); JPanel frage_panel = new JPanel(); JPanel scr_panel = new JPanel(); JPanel trenn_panel3 = new JPanel(); JScrollPane fragen_scrPane = new JScrollPane(frage_panel); fragen_scrPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); left_panel.setLayout(sl); left_panel.setBackground(Color.red); time_panel.add(new JLabel("Zeit:")); time_panel.setPreferredSize(new Dimension(124,25)); time_panel.setBackground(Color.magenta); time_panel.add(new JLabel("30:00")); trenn_panel1.setPreferredSize(new Dimension(124,2)); trenn_panel1.setMinimumSize(new Dimension(124,2)); trenn_panel1.setBackground(Color.blue); label_panel.setPreferredSize(new Dimension(124,25)); label_panel.setMinimumSize(new Dimension(124,25)); label_panel.add(new JLabel("Fragen:")); label_panel.add(new JLabel("30")); label_panel.setBackground(Color.cyan); trenn_panel2.setPreferredSize(new Dimension(124,2)); trenn_panel2.setMinimumSize(new Dimension(124,2)); trenn_panel2.setBackground(Color.blue); frage_panel.setLayout(new BoxLayout(frage_panel, BoxLayout.Y_AXIS)); frage_panel.setBackground(Color.orange); frage_panel.setPreferredSize(new Dimension(106,660)); frage_panel.setMinimumSize(new Dimension(106,660)); scr_panel.setBackground(Color.green); scr_panel.setPreferredSize(new Dimension(124,666)); scr_panel.setMinimumSize(new Dimension(124,666)); for (int i = 0; i < 50; i++) { JLabel b = new JLabel(i + " Frage"); frage_panel.add(b); } trenn_panel3.setPreferredSize(new Dimension(124,2)); trenn_panel3.setMinimumSize(new Dimension(124,2)); trenn_panel3.setBackground(Color.blue); scr_panel.add(fragen_scrPane); left_panel.add(time_panel); left_panel.add(trenn_panel1); left_panel.add(label_panel); left_panel.add(trenn_panel2); left_panel.add(scr_panel); left_panel.add(trenn_panel3); sl.putConstraint(SpringLayout.NORTH, trenn_panel1, 0, SpringLayout.SOUTH, time_panel); sl.putConstraint(SpringLayout.NORTH, label_panel, 0, SpringLayout.SOUTH, trenn_panel1); sl.putConstraint(SpringLayout.NORTH, trenn_panel2, 0, SpringLayout.SOUTH, label_panel); sl.putConstraint(SpringLayout.NORTH, scr_panel, 0, SpringLayout.SOUTH, trenn_panel2); sl.putConstraint(SpringLayout.NORTH, trenn_panel3, 0, SpringLayout.SOUTH, scr_panel); }
}
|
|