以下代码有效,但仅在按下显示值和调整大小按钮后才能使用。直到我按下显示值并按下调整大小按钮后才会出现。如果仅按下“显示值”按钮,如何使其显示?
public class myClass extends JFrame{
String[] colNames = {"Item Name",
"Department",
"Original Price",
"Sales Price"};
Object[][] input = {
{"Kathy", "Smith",
new Double(10), new Integer(5)},
{"John", "Doe",
new Double(10), new Integer(3)},
{"Sue", "Black",
new Double(10), new Integer(2)},
{"Jane", "White",
new Double(10), new Integer(20)},
{"Joe", "Brown",
new Double(10), new Integer(10)}
};
//display values
JButton buttonDisplay = new JButton();
buttonDisplay.setText("Display Values");
container.add(buttonDisplay);
buttonDisplay.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
JTable jt = new JTable( input, colNames );
JScrollPane pane = new JScrollPane( jt );
jt.setPreferredScrollableViewportSize(
new Dimension(200,200));
pane.add(jt);
container.add( pane );
container.add(jt);
/*Must use a JTextBox or JTable to display all the stored values for:
*
* Item name
Department
Original price
Sale price
*/
}
});
答案 0 :(得分:1)
您只需添加滚动窗格,而不是滚动窗格和表格。所以删除
container.add(jt);
线。此外,如果您向已经可见的Container
添加内容,则应按照javadoc中的说明使Container
无效。添加
container.revalidate();
container.repaint();
应该使表格可见。
答案 1 :(得分:0)
添加新组件后尝试调用pack()
。这将调整您的JFrame大小以适应所有内容。这就是我假设你的"调整大小按钮"正在做。
public void actionPerformed(ActionEvent evt) {
// ... your other code ...
container.pack();
}