简体   繁体   中英

How to add Scrollbar in Java GUI

This is my GUI code and I have added ScrollBar but it doesn't work. I want to add vertical scrollbar and horizontal. Please, anyone, help me with this. I have tried many but still there is no luck

Thanks in advance.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.LineBorder;
import java.io.*;
import java.io.IOException;
import java.util.Scanner;

 public class TimeTableGUI extends JFrame implements ActionListener {
        private JTextField name = new JTextField(10);
        private JTextField day = new JTextField(10);
        private JTextField startTime = new JTextField(10);
        private JTextField endTime = new JTextField(10);
        private JTextField weekPattern = new JTextField(10);
        private JTextField location = new JTextField(10);
        private JTextField roomSize = new JTextField(10);
        private JTextField classSize = new JTextField(10);
        private JTextField staff = new JTextField(10);
        private JTextField department = new JTextField(10);
        private JTextField type = new JTextField(10);

        private JLabel labn = new JLabel(" Module Name:");
        private JLabel labd = new JLabel(" Day:");
        private JLabel labsT = new JLabel(" StartTime:");
        private JLabel labeT = new JLabel(" EndTime:");
        private JLabel labwP = new JLabel(" WeekPattern:");
        private JLabel labl = new JLabel(" Location:");
        private JLabel labrS = new JLabel(" RoomSize:");
        private JLabel labcS = new JLabel("ClassSize");
        private JLabel labs = new JLabel("Staff");
        private JLabel labdep = new JLabel("Department");
        private JLabel labtyp = new JLabel("Type");
        private JButton lecture = new JButton("Lecture");
        private JButton computerLab = new JButton("ComputerLab");
        private JButton seminar = new JButton("Seminar");
        private JButton lookup = new JButton("LookUp");
        private JButton add = new JButton("Add");
        private JButton remove = new JButton("Remove");
        private JButton update = new JButton("Save");
        private TimeTable timeTable = new TimeTable();
        private boolean seminarSelected = false;
        private boolean lectureSelected = false;
        private boolean computerLabSelected = false;

        private JTextArea outputArea = new JTextArea(20, 50);

I am doing this over here,

private JScrollPane scrollbar = new JScrollPane(outputArea);

        public static void main(String[] args) throws IOException {
            TimeTableGUI applic = new TimeTableGUI();

        } // main

        public TimeTableGUI() throws IOException {
            super("TimeTable");
            FlowLayout flowLayout1 = new FlowLayout();
            setLayout(flowLayout1);
            add(labn);
            add(name);
            name.setEditable(true);
            add(labd);
            add(day);
            day.setEditable(true);
            add(labsT);
            add(startTime);
            startTime.setEditable(true);
            add(labeT);
            add(endTime);
            endTime.setEditable(true);
            add(labwP);
            add(weekPattern);
            weekPattern.setEditable(true);
            add(labl);
            add(location);
            location.setEditable(true);
            add(labrS);
            add(roomSize);
            roomSize.setEditable(true);
            add(labcS);
            add(classSize);
            classSize.setEditable(true);
            add(labs);
            add(staff);
            staff.setVisible(true);
            add(labdep);
            add(department);
            department.setEditable(true);
            add(labtyp);
            add(type);
            type.setEditable(true);
            add(lecture);
            lecture.addActionListener(this);
            add(computerLab);
            computerLab.addActionListener(this);
            add(seminar);
            seminar.addActionListener(this);
            add(lookup);
            lookup.addActionListener(this);
            add(add);
            add.addActionListener(this);
            add(remove);
            remove.addActionListener(this);
            add(update);
            update.addActionListener(this);

and I am adding my scrollbar over here, even though it doesn't work add(scrollbar);

            outputArea.setEditable(false);

            add(outputArea);
            setSize(720, 200);
            outputArea.setEditable(false);
            setVisible(true);
            blankDisplay();
        }

        public void actionPerformed(ActionEvent event) {

            if (event.getSource() == add) {
                String n = name.getText();
                String d = day.getText();
                String sT = startTime.getText();
                String eT = endTime.getText();
                String wP = weekPattern.getText();
                String l = location.getText();
                String rS = roomSize.getText();
                String cS = classSize.getText();
                String s = staff.getText();
                String dep = department.getText();
                String ty = type.getText();
                outputArea.setText("Record added\n");

                if (seminarSelected) {
                    ty = type.getText();
                    Seminar S = new Seminar(n, d, sT, eT, wP, l, rS, cS, s, dep);
                    timeTable.addEntry(S);
                } else if (lectureSelected) {
                    ty = type.getText();
                    Lecture L = new Lecture(n, d, sT, eT, wP, l, rS, cS, s, dep);
                    timeTable.addEntry(L);

                } else if (computerLabSelected) {
                    ty = type.getText();
                    ComputerLab cL = new ComputerLab(n, d, sT, eT, wP, l, rS, cS, s, dep);
                    timeTable.addEntry(cL);
                } else {
                    Entry entry = new Entry(n, d, sT, eT, wP, l, rS, cS, s, dep);
                    timeTable.addEntry(entry);
                }
            }
            if (event.getSource() == lookup) {
                String n = name.getText();
                String result = timeTable.lookupEntry(n);
                outputArea.setText(result);
            }

            if (event.getSource() == remove) {
                String n = name.getText();
                String result = timeTable.removeEntry(n);
                //timeTable.removeEntry(name.getText());
                outputArea.setText(result);
                outputArea.setText("Record removed");
            }

            if (event.getSource() == update) {
                // timeTable.updateEntry();
                outputArea.setText("Record Updated");

            }
        }

        public void blankDisplay() {
            name.setText("");
            day.setText("");
            startTime.setText("");
            startTime.setText("");
            endTime.setText("");
            weekPattern.setText("");
            location.setText("");
            roomSize.setText("");
            classSize.setText("");
            staff.setText("");
            department.setText("");

        }
    }

and I am adding my scrollbar over here, even though it doesn't work add(scrollbar);

Where? I don't see where you add the scroll pane to the frame.

All I see is:

add(outputArea);

which is wrong because a component can only have a single parent so this will remove the text area from the scroll pane.

The code should be:

//add(outputArea);
add(scrollbar);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM