我正在尝试用 Java 制作 GUI 应用程序,但在 JScrollPane 中动态添加/更新组件时遇到问题。我有两个 JPanel(P1 和 P2),其中 P1 有一个表单来设置应用程序参数,P2 包含一些 GUI 组件,这些组件根据 P1 中的值动态更新。我需要在 P2 上使用 JScrollPane 来滚动,所以我在 P2 中添加了 JScrollPane。我将 P1 和 P2 添加到主面板“main”中,然后将主面板添加到框架中。但是组件在 P2 中没有更新。有人可以建议有什么问题吗?我已经调用了 revalidate()、repaint() 和其他一些方法,但是 GUI 没有更新。下面是我编写的示例代码,只是为了说明我的问题。我的应用程序中需要 GroupLayout 所以这里我也使用了 GroupLayout
import java.awt.event.ActionEvent;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class JframeExample extends JFrame {
private final JPanel P1;
private final JPanel P2;
private final JPanel main;
private final JScrollPane scrol;
private final JButton jButton;
private final JButton jButton2;
public …
Run Code Online (Sandbox Code Playgroud) 我编写了代码来查找大量字符串中的distinct元素.代码如下
HashMap<String, Integer> countMap = new HashMap<>();
String[] str={"aa","bb","cc","bb","aa","cc","aa","bb","cc","bb"};
for (String e : str) {
if (!countMap.containsKey(e)) {
countMap.put(e, 1);
}
}
Iterator it=countMap.keySet().iterator();
String[] db= new String[countMap.size()];
for(int i=0;i<countMap.size();i++){
db[i]=(String)it.next();
System.out.println(db[i]);
}
Run Code Online (Sandbox Code Playgroud)
有没有比这更快的代码,因为我必须处理非常大的数组.