I can not figure out one problem, I have a JTextArea form in my application and a JScrollPane attached to it. But I donβt know how to make a working scrolling, when the JtextArea field is completely filled with text, it starts to increase its vertical size and enters the progress bar and buttons located below. I would like to correct this situation.
Here is the code
package main.java.view; import javax.swing.*; import java.awt.*; public class ShopQueueGUIApp { public static final int W_WIDTH = 540; public static final int W_HEIGHT = 500; public static void main(String[] args) { JFrame mainForm = new JFrame("Queue Shop v0.3 alpha"); mainForm.setSize(W_WIDTH,W_HEIGHT); // ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π° mainForm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Π·Π°ΠΊΡΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΊΡΠ΅ΡΡΠΈΠΊΠ° mainForm.setLocationRelativeTo(null); // ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΠΎΠΊΠ½ΠΎ ΠΏΠΎ ΡΠ΅Π½ΡΡΡ ΡΠΊΡΠ°Π½Π° mainForm.setResizable(false); // Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π° mainForm.setLayout(new GridBagLayout()); // Π‘Π»ΠΎΠΉ // Π’Π΅ΠΊΡΡΠΎΠ²Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ //-------------------------------------------------------------- JLabel infoLabel = new JLabel("ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅Ρ"); JLabel infoLabel2 = new JLabel("ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Π΅ΠΉ Π² ΠΊΠ°ΡΡΡ"); JLabel infoLabel3 = new JLabel("ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°."); JLabel infoLabel4 = new JLabel("ΠΠ°ΠΆΠ΄ΡΡ ΠΌΠΈΠ½ΡΡΡ Π·Π°Ρ
ΠΎΠ΄ΠΈΡ ΠΈΠ»ΠΈ Π½Π΅"); JLabel infoLabel5 = new JLabel("Π·Π°Ρ
ΠΎΠ΄ΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ, ΡΡΠΎ"); JLabel infoLabel6 = new JLabel("ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ."); JLabel infoLabel7 = new JLabel("ΠΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ"); JLabel infoLabel8 = new JLabel("ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΏΡΡΠΈ ΠΊΠ°ΡΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°,"); JLabel infoLabel9 = new JLabel("ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ"); JLabel infoLabel10 = new JLabel("ΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎ ΡΡΠ΅Ρ
ΠΌΠΈΠ½ΡΡ, ΠΈ Π·Π°ΡΠ΅ΠΌ"); JLabel infoLabel11 = new JLabel("ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ."); JLabel infoLabel12 = new JLabel("ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎ"); JLabel infoLabel13 = new JLabel("ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΠΎΠΊΠ½Π΅ ΡΠΏΡΠ°Π²Π°."); JLabel infoLabel14 = new JLabel("ΠΠ°Π΄Π°ΠΉΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ"); JLabel infoLabel15 = new JLabel("(ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - 30 ΠΌΠΈΠ½ΡΡ)"); JLabel infoLabel16 = new JLabel("ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ \"+1 ΠΌΠΈΠ½ΡΡΠ°\""); JLabel infoLabel17 = new JLabel("ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ"); JLabel infoLabel18 = new JLabel("Π½Π° 1 ΠΌΠΈΠ½ΡΡΡ."); JLabel infoLabel19 = new JLabel("ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ \"Π‘ΡΠΎΠΏ\""); JLabel infoLabel20 = new JLabel("ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ"); JLabel infoLabel21 = new JLabel("ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ."); //-------------------------------------------------------------- // Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΡ //-------------------------------------------------------------- mainForm.add(infoLabel,new GridBagConstraints(0,0,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel2,new GridBagConstraints(0,1,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel3,new GridBagConstraints(0,2,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel4,new GridBagConstraints(0,3,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel5,new GridBagConstraints(0,4,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel6,new GridBagConstraints(0,5,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel7,new GridBagConstraints(0,6,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel8,new GridBagConstraints(0,7,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel9,new GridBagConstraints(0,8,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel10,new GridBagConstraints(0,9,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel11,new GridBagConstraints(0,10,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel12,new GridBagConstraints(0,11,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel13,new GridBagConstraints(0,12,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel14,new GridBagConstraints(0,13,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel15,new GridBagConstraints(0,14,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel16,new GridBagConstraints(0,15,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel17,new GridBagConstraints(0,16,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel18,new GridBagConstraints(0,17,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel19,new GridBagConstraints(0,18,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel20,new GridBagConstraints(0,19,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(infoLabel21,new GridBagConstraints(0,20,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); //-------------------------------------------------------------- // ΠΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° Π΄Π»Ρ Π΅Π³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ //-------------------------------------------------------------- JTextField endTimeLineField = new JTextField(); JButton setTimeButton = new JButton("ΠΠ°Π΄Π°ΡΡ Π²ΡΠ΅ΠΌΡ"); // ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² mainForm.add(endTimeLineField,new GridBagConstraints(0,21,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(setTimeButton,new GridBagConstraints(0,22,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); //-------------------------------------------------------------- // ΠΠΎΠ½ΡΠΎΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° //-------------------------------------------------------------- JTextArea console = new JTextArea(20,1); //console.setEditable(false); console.setWrapStyleWord(true); console.setLineWrap(true); JScrollPane scroll = new JScrollPane(console); scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); JLabel consLabel = new JLabel("ΠΠΎΠ½ΡΠΎΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π°:"); // ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² mainForm.add(console,new GridBagConstraints(1,1,1,24,0.0,0.0,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(consLabel,new GridBagConstraints(1,0,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(scroll,new GridBagConstraints(2,1,1,20,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.VERTICAL,new Insets(0,0,0,0),0,0)); //-------------------------------------------------------------- // ΠΠ½ΠΎΠΏΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΅ΡΡΠΎΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ //-------------------------------------------------------------- JButton stepButton = new JButton("+1 ΠΠΈΠ½ΡΡΠ°"); JButton stopButton = new JButton("ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅"); // ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² mainForm.add(stopButton,new GridBagConstraints(1,23,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); mainForm.add(stepButton,new GridBagConstraints(0,23,1,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0)); //-------------------------------------------------------------- // ΠΡΠΎΠ³ΡΠ΅ΡΡ Π±Π°Ρ //-------------------------------------------------------------- JProgressBar timeLineBar = new JProgressBar(); timeLineBar.setStringPainted(true); timeLineBar.setMinimum(0); timeLineBar.setMaximum(100); timeLineBar.setValue(25); // ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² mainForm.add(timeLineBar,new GridBagConstraints(1,22,2,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(3,1,1,1),0,0)); // ΠΠ΅ΡΠΊΠ° Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ-Π±Π°ΡΠ° JLabel progressLabel = new JLabel("ΠΡΠΎΠ³ΡΠ΅ΡΡ:"); // ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² mainForm.add(progressLabel,new GridBagConstraints(1,21,2,1,0.0,0.9,GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,new Insets(1,70,1,1),0,0)); //-------------------------------------------------------------- mainForm.pack(); mainForm.setVisible(true); // Π²ΠΊΠ»ΡΡΠΈΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΠΎΠΊΠ½Π° } } 