Question

im having a little issue with my code. I have created a gridlayout of 5,1,0,0. I have a textfield, 3 buttons and a label where the result analysis of whatever the user had input is displayed at the bottom. Now the results can come on multiple lines depending on how big words are in the sentence, my problem is when multiple lines of results are displayed, the layout of my program changes and i dont know how to keep it the same but just the label or Applet window itself resize if need be?

 public class assignment_tauqeer_abbasi extends JApplet implements ActionListener {

    JTextArea textInput;     // User Input.
    JLabel wordCountLabel;   // To display number of words.

    public void init() {

// This code from here is the customisation of the Applet, this includes background colour, text colour, text back ground colour, labels and buttons

      setBackground(Color.black);
       getContentPane().setBackground(Color.black);

       textInput = new JTextArea();
       textInput.setBackground(Color.white);

       JPanel south = new JPanel();
       south.setBackground(Color.darkGray);
       south.setLayout( new GridLayout(5,1,0,0) );

       /* Creating Analyze and Reset buttons */

       JButton countButton = new JButton("Analyze");
       countButton.addActionListener(this);
       south.add(countButton);

       JButton resetButton = new JButton("Reset");
       resetButton.addActionListener(this);
       south.add(resetButton);

       JButton fileButton = new JButton("Analyze Text File");
       fileButton.addActionListener(this);
       south.add(fileButton);

       /* Labels telling the user what to do or what the program is outputting */

       wordCountLabel = new JLabel("  No. of words:");
       wordCountLabel.setBackground(Color.black);
       wordCountLabel.setForeground(Color.red);
       wordCountLabel.setOpaque(true);
       south.add(wordCountLabel);

       /* Border for Applet. */

       getContentPane().setLayout( new BorderLayout(2,2) );

       /* Scroll bar for the text area where the user will input the text they wish to analyse. */

       JScrollPane scroller = new JScrollPane( textInput );
       getContentPane().add(scroller, BorderLayout.CENTER);
       getContentPane().add(south, BorderLayout.SOUTH);

    } // end init();

    public Insets getInsets() {
          // Border size around edges. 
       return new Insets(2,2,2,2);
    }

// end of Applet customisation

This is my code for the layout. Any help would be apprecited!

Was it helpful?

Solution

A GridLayout will size every cell according to the content of the largest cell. Consider using a different layout, or a combination of layouts instead.

OTHER TIPS

The gridLayout that you have used would possibly complicate the five contents that you have used. Try using flow Layout instead this would automatically make space for the new contents that are being entered.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top