I've never used GridBagLayout but I'm sure it could be something else. Currently I'm trying to add a TextArea to act as a console viewport window for any code being executed. As it stands, the TextArea is minuscule and actually can't see any text.
I tried consulting this page for one of the suggestions but I was still unable to correctly get the JTextArea to show.
The code is pasted below, let me know if you need anything else. I've also attached an additional picture showing what it's currently doing. Edit: setup(); is an empty body.
@SuppressWarnings("serial")
public abstract class MainComponent extends JPanel {
protected String componentName = "DEMO";
private JLabel title;
private GridBagConstraints gbc;
private Insets spacing;
private Font buttonFont;
/*
* Redirection manipulation for the project.
*/
private JTextArea localConsole;
public MainComponent(Dimension dim) {
setup();
/* Set main body */
setLayout(new GridBagLayout());
gbc = new GridBagConstraints();
spacing = new Insets(100,5,100,5);
buttonFont = new Font("Consolas", Font.ITALIC, 22);
/* Set title */
title = new JLabel(componentName);
title.setFont(new Font("Consolas", Font.BOLD, 48));
gbc.fill = GridBagConstraints.CENTER;
gbc.gridx = 1;
gbc.gridy = 0;
add(title, gbc);
JButton run = new JButton("Run Project");
run.setFont(buttonFont);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = spacing;
gbc.gridx = 0;
gbc.gridy = 2;
add(run, gbc);
JButton open = new JButton("Open Codebase");
open.setFont(buttonFont);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = spacing;
gbc.gridx = 1;
gbc.gridy = 2;
add(open, gbc);
JButton exit = new JButton("Exit Program");
exit.setFont(buttonFont);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = spacing;
gbc.gridx = 2;
gbc.gridy = 2;
add(exit, gbc);
/* Setup console for output */
localConsole = new JTextArea();
DefaultCaret caret = (DefaultCaret) localConsole.getCaret();
caret.setUpdatePolicy(2);
localConsole.setEditable(false);
localConsole.setFont(new Font("Consolas", Font.PLAIN, 16));
localConsole.setWrapStyleWord(true);
localConsole.setSize(new Dimension(400, 200));
JScrollPane scrollPane = new JScrollPane(localConsole);
scrollPane.setVerticalScrollBarPolicy(22);
scrollPane.setSize(new Dimension(400, 200));
gbc.fill = GridBagConstraints.CENTER;
gbc.insets = new Insets(200, 0, 20, 0);
gbc.gridx = 1;
gbc.gridy = 3;
gbc.gridwidth = 5;
gbc.gridheight = 2;
add(scrollPane, gbc);
}