Di this.add ce ne stanno due, e ho argomentato entrambi con il Jscrollpane, seguito dall'append sulla TextArea. Sono due perché c'è un else da gestire, con output sempre nella TextArea...

Con il layout introdotto non ci sono oggetti nella stessa cella, e confermo che tentando di farli coesistere, sballano di posizione.

JScrollPane ha queste istruzioni:
codice:
jScrollPane1 = new javax.swing.JScrollPane();

jScrollPane1.setAutoscrolls(true);


jScrollPane1.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N


jScrollPane1.setMaximumSize(new java.awt.Dimension(146, 91));


jScrollPane1.setMinimumSize(new java.awt.Dimension(146, 91));


jScrollPane1.setOpaque(false);


jScrollPane1.setPreferredSize(new java.awt.Dimension(146, 91));


// Code of sub-components and layout - not shown here


gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(18, 20, 18, 20);
jPanel1.add(jScrollPane1, gridBagConstraints);
La TextArea ha queste altre:
codice:
OutputArea = new javax.swing.JTextArea();
OutputArea.setEditable(false);
OutputArea.setColumns(20);
OutputArea.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
OutputArea.setRows(8);
OutputArea.setTabSize(8);
OutputArea.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
OutputArea.setMaximumSize(new java.awt.Dimension(146, 91));
OutputArea.setMinimumSize(new java.awt.Dimension(146, 91));
OutputArea.setPreferredSize(new java.awt.Dimension(146, 91));
jScrollPane1.setViewportView(OutputArea);
Da novizio mi viene qualche sospetto circa il rapporto tra dimensioni e righe/colonne...

Ma resta strano il fatto che cliccando ovunque dentro il JFrame, lo scrollpane come se collassa e finisce poi in secondo piano...