我尝试了不同的方法来解决这个问题,但显然没有任何效果。因为我是java的新手,我实际上不知道我的代码是否有问题。 我已经尝试设置应该进入边框布局的南部部分的文本区域的大小,但是大小仍然很小看。
有人知道解决方案吗?
package package1;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class SimpleDatabasePanel extends JFrame implements ActionListener {
private JMenuBar menuBar;
private JMenu file;
private JMenuItem save, load, quit;
private JButton add, undo, find, delete, display;
private JScrollPane pane;
private JTable table;
private JPanel panel;
private JTextArea tName, tGNum, tGPA, results;
private JLabel name, gNum, gpa;
private LinkedList list;
public SimpleDatabasePanel(){
setLayout(new BorderLayout());
setTitle("Simple Database");
//setSize(1000,1000);
menuBar = new JMenuBar();
setJMenuBar(menuBar);
file = new JMenu("File");
quit = new JMenuItem("Quit");
save = new JMenuItem("Save");
load = new JMenuItem("Load");
add = new JButton("Add");
undo = new JButton("Undo");
find = new JButton("Find");
delete = new JButton("Delete");
display = new JButton("Display");
tName = new JTextArea();
tGNum = new JTextArea();
tGPA = new JTextArea();
results = new JTextArea(10,20);
name = new JLabel("Name");
gNum = new JLabel("G Number");
gpa = new JLabel("GPA");
list = new LinkedList();
panel = new JPanel();
panel.setLayout(new GridLayout(3, 4, 4, 4));
//frame = new JFrame();
pane = new JScrollPane();
pane.setSize(300, 60);
table = new JTable();
menuBar = new JMenuBar();
menuBar.add(file);
file.add(save);
file.add(load);
file.add(quit);
panel.add(name);
panel.add(tName);
panel.add(undo);
panel.add(add);
panel.add(gNum);
panel.add(tGNum);
panel.add(find);
panel.add(delete);
panel.add(gpa);
panel.add(tGPA);
panel.add(display);
pane.add(results);
add(menuBar, BorderLayout.NORTH);
add(panel, BorderLayout.CENTER);
add(pane, BorderLayout.SOUTH);
this.pack();
ButtonListener listener = new ButtonListener();
file.addActionListener(file.getAction());
find.addActionListener(listener);
undo.addActionListener(listener);
save.addActionListener(this);
quit.addActionListener(this);
add.addActionListener(listener);
load.addActionListener(this);
delete.addActionListener(listener);
display.addActionListener(listener);
}
public void actionPerformed(ActionEvent e) {
JMenuItem file = (JMenuItem) e.getSource();
if(file == quit){
System.exit(0);
}
if(file == load){
String filename = JOptionPane.showInputDialog("Enter File Name: ");
(list).load(filename);
}
if(file == save){
String filename = JOptionPane.showInputDialog("Enter File Name: ");
(list).save(filename);
}
}
private class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
if(event.getSource() == add){
}
if(event.getSource() == delete){
}
if(event.getSource() == display){
}
if(event.getSource() == find){
}
if(event.getSource() == undo){
}
}
}
public static void main(String[] args){
SimpleDatabasePanel s =new SimpleDatabasePanel();
s.setVisible(true);
s.setResizable(false);
}
}
答案 0 :(得分:0)
更改此
pane.add(results);
到这个
pane.setViewportView(results);
或者
pane.getViewport().add(results, null);
使用setViewportView
或getViewport().add
将组件设置为jscrollpane
。您也可以将组件(jtextarea)传递给jscrollpane的构造函数。read more about jscrollpane here
输出