我有一个脚本,可以根据数据自动在数据透视表上设置一些过滤器(隐藏和显示某些文章)。现在脚本运行良好,但是当我有了数据透视图时,它会变得非常慢。我认为后台发生的事情是,我显示/隐藏的每篇文章都重新计算了图表。
是否可以在不更新表格的情况下设置多个过滤器,然后在设置完所有数据透视表和表格后又进行更新?
我考虑过删除图表,设置过滤器,然后重新创建图表。但这会删除我在图表上设置的所有格式,因此我不想走那条路。
public static JFrame f;
public static JTextField jtf;
public static JPanel jp;
public static void creategui()
{
System.out.println("GUI created.");
f = new JFrame("Players");
jp = new JPanel();
jp.setLayout(new FlowLayout(FlowLayout.LEFT));
jp.setBackground(Color.GRAY);
jtf = new JTextField("Reason");
jtf.setPreferredSize(new Dimension(200,20));
jtf.setToolTipText("Write the reason here.");
jp.setSize(new Dimension(200,200));
f.setLayout(null);
f.setSize(500,500);
f.setVisible(true);
jp.add(jtf);f.add(jp, BorderLayout.CENTER);
for (final Player p : Bukkit.getOnlinePlayers())
{
System.out.println("Looping.");
final JButton b = new JButton();
b.setName(p.getName());
b.setText(p.getName());
b.setToolTipText("Kick " + b.getText());
b.setBackground(Color.GREEN);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (!b.getBackground().equals(Color.RED))
{
Bukkit.getScheduler().runTask(main, new Runnable() {
public void run() {
Bukkit.getPlayer(b.getText()).kickPlayer(jtf.getText());
b.setBackground(Color.RED);
}
});
}
}
});
jp.add(b);
System.out.println("Button added.");
}
f.add(jp, BorderLayout.CENTER);
}
任何帮助您更快完成此操作的人将不胜感激。预先感谢!