300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java 刷新jpanel_Java Swing刷新JPanel

java 刷新jpanel_Java Swing刷新JPanel

时间:2021-05-26 06:43:22

相关推荐

java 刷新jpanel_Java Swing刷新JPanel

我有一个Applet类(扩展 JApplet ) . 在类中,我实例化一个JPanel并初始化一个JButton whit setEnabled(true) . 用户在Panel中单击此按钮并进行一些处理后,我调用JPanel内部的方法来更新面板 . 然后我按下JPanel上的按钮 setEnabled(false) .

但是,在主面板上调用 add(ScrollPane) 后,JPanel没有正确"refreshing" . 在处理并将JButton设置为未启用(并且我确认正确的数据存在等)之后,JPanel仍然处于其初始化形式 .

换句话说,我需要做什么才能在applet中的JPanel上调用 add(JScrollPane) 实际刷新Panel?

基本上我想知道:如果你更新嵌套在JApplet内部的swing组件中的面板,那么更新是否可见?如果不是,需要做些什么才能刷新?

这是代码:

public void actionPerformed(ActionEvent e) {

String command = e.getActionCommand();

if (STAMPA_COMMAND.equals(command)) {

stampa.setEnabled(false);

JPanel areaPrint = new JPanel();

JLabel lab = new JLabel("Wait Printing...");

areaPrint.setBackground(Color.magenta);

areaPrint.add(lab);

scrollArea.getViewport().add(areaPrint); // THIS IS THE PROBLEM...THE CHANGE ARE NOT REFRESHED

try {

PrintPdf printPDFFile;

ArrayList assegniDaStampare = new ArrayList();

for (int i = 0; i < assegni.size(); i++) {

DatiAssegno datiAss = (DatiAssegno) assegni.get(i);

if (datiAss != null && datiAss.getStatoAssegno().equals(STATUS_OK)) {

printPDFFile = new PrintPdf("Stampa Assegni", datiAss);

printPDFFile.print();

String servletLocation = "http://localhost/Servlet";

// connect to the servlet

URL studentDBservlet = new URL(servletLocation);

URLConnection servletConnection = studentDBservlet.openConnection();

servletConnection.setUseCaches(false);

servletConnection.setDefaultUseCaches(false);

servletConnection.setDoInput(true);

servletConnection.setDoOutput(true);

OutputStream outstream = servletConnection.getOutputStream();

ObjectOutputStream oos = new ObjectOutputStream(outstream);

oos.writeObject(datiAss.idAssegno);

oos.flush();

oos.close();

ObjectInputStream inputFromServlet = new ObjectInputStream(servletConnection.getInputStream());

try {

String statusSave = (String) inputFromServlet.readObject();

} catch (ClassNotFoundException e4) {

e4.printStackTrace();

}

}

}

JPanel areaPrint2 = new JPanel();

JLabel lab2 = new JLabel("Print Complete");

areaPrint2.setBackground(Color.green);

areaPrint2.add(lab2);

scrollArea.getViewport().add(areaPrint2);

} catch (FileNotFoundException e1) {

//do something

} catch (IOException e2) {

//do something

} catch (PrinterException e3) {

//do something

}

}

if (EXIT_COMMAND.equals(command)) {

JSObject win = JSObject.getWindow(appletParent);

appletParent.stop();

appletParent.destroy();

win.eval("self.close()");

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。