gpt4 book ai didi

java - JScrollpane 仅在最大化窗口 Java Swing 后可见

转载 作者:行者123 更新时间:2023-12-02 22:31:08 25 4
gpt4 key购买 nike

我正在使用 JScrollPane 将一些值放入 JTable 中,但是 JScrollPane 必须是不可见的,直到用户单击按钮。但是在我手动最大化窗口之前,JScrollPane 仍然不可见。我几乎尝试了所有方法,.validate(); .revalidate(); .repaint()... 我正在使用 Netbeans,在 JScrollPane 的自定义代码上我写了这个:

scrollPane = new javax.swing.JScrollPane();
this.scrollPane.setVisible(false);
// El código de los subcomponentes y del gestor de distribución - no se muestra aquí

// El código que agrega el componente al contenedor superior - no se muestra aquí

然后,在 MouseReleased 上:

private void botoGeneraLlistatMouseReleased(java.awt.event.MouseEvent evt) {
this.generaLlistat();
}

在 generaLlistat() 的末尾:

public void generaLlistat(){{
...(Some code requesting data from DB)
JTable table = new JTable(rows, headings);
scrollPane.setViewportView(table);
this.scrollPane.setVisible(true);
statement.close();
connection.close();
}

我将不胜感激任何帮助:)谢谢大家,对我的英语语法和拼写感到抱歉。

最佳答案

尝试这样做:

package stack;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Aitor extends JFrame implements ActionListener{
JTable table;
JPanel panel = new JPanel();
JButton button = new JButton("Add");

String data[][]={{"hey","hey"},{"hey","hey"},{"hey","hey"},{"hey","hey"}, {"hey","hey"},{"hey","hey"}
,{"hey","hey"},{"hey","hey"},{"hey","hey"},{"hey","hey"},{"hey","hey"},{"hey","hey"},{"hey","hey"},{"hey","hey"}
,{"hey","hey"},{"hey","hey"}};
String columns[] = {"First","Second"};

public Aitor(){
setLayout(new BorderLayout());
panel.setLayout(new BorderLayout());
panel.setPreferredSize(new Dimension(500,400));
button.addActionListener(this);
add(panel,BorderLayout.CENTER);
add(button, BorderLayout.SOUTH);

}

public static void main(String [] a){
Aitor aitor = new Aitor();
aitor.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
aitor.pack();
aitor.setVisible(true);
}

@Override
public void actionPerformed(ActionEvent arg0) {
panel.removeAll();
table =new JTable(data,columns);
panel.add(new JScrollPane(table),BorderLayout.CENTER);
repaint();
revalidate();
}
}

关于java - JScrollpane 仅在最大化窗口 Java Swing 后可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12223564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com