The Artima Developer Community
Sponsored Link •

Java Answers Forum
how to (re)paint an AWT applet faster

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Tienshan

Posts: 7
Nickname: tienshan
Registered: Oct, 2004

how to (re)paint an AWT applet faster Posted: Nov 14, 2004 9:11 AM
Reply to this message Reply
Advertisement
Is there a way to repaint this AWT applet of mine little bit faster? If I have 10 columns and 20 rows of textFields, when I repaint the applet, I can literally "see" the repainting being done, like an unseen hand sweeping clean the fields and then another hand putting the new fields in places. I will need to do better.

Does anyone have an advice?
Thank you.

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class Test1112 extends Applet {
int no_of_rec = 0;
int index = 0;

TextField[] txtDataRowDisplay1;
TextField[] txtDataRowDisplay2;
TextField[] txtDataRowDisplay3;
TextField[] txtDataRowDisplay4;
TextField[] txtDataRowDisplay5;
TextField[] txtDataRowDisplay6;
TextField[] txtDataRowDisplay7;
TextField[] txtDataRowDisplay8;
TextField[] txtDataRowDisplay9;
TextField[] txtDataRowDisplay10;


String[] data;
Panel p1;
GridBagConstraints c1;
Panel pMain;
Color pnlBgColor = new Color(144, 196, 222);

Panel cPanel;

public void init(){

data = getData(index);
no_of_rec = data.length;

//main Panel
pMain = new Panel();
pMain.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
pMain.setBackground(pnlBgColor);

//p0
Panel p0 = new Panel();
p0.setLayout(new GridBagLayout());
GridBagConstraints c0 = new GridBagConstraints();
c0.fill = GridBagConstraints.HORIZONTAL;
p0.setBackground(pnlBgColor);

//p1
p1 = new Panel();
p1.setLayout(new GridBagLayout());
c1 = new GridBagConstraints();


Button btnNext = new Button("Next Item");
c0.insets = new Insets(0, 0, 10, 0);
c0.gridx = 3;
c0.gridy = 0;
p0.add(btnNext, c0);

btnNext.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e){
index++;
data = getData(index);
no_of_rec = data.length;

p1.removeAll();
addDataPanel(p1, c1);
display(data);

p1.invalidate();
p1.validate();
p1.repaint();

}
});

//call a method to add data row(s)
addDataPanel(p1, c1);

//add p0 and p1 to pMain;
c.gridx = 0;
c.gridy = 0;
pMain.add(p0, c);

c.gridx = 0;
c.gridy = 1;
pMain.add(p1, c);


//p2
Panel p2 = new Panel();
p2.setLayout(new GridBagLayout());
GridBagConstraints c2 = new GridBagConstraints();
c2.fill = GridBagConstraints.HORIZONTAL;
p2.setBackground(pnlBgColor);

c.gridx = 0;
c.gridy = 2;
pMain.add(p2, c);

display(data);

add(pMain);

this.setBackground(pnlBgColor);

}//init

private String[] getData(int i){

int n = 0;
if((i%2) == 0) n= 20;
else n= 18;
String[] data = new String[n];
for(int j=0; j < data.length; j++){
data[j] = "000000" + String.valueOf(j);
}
return data;
}

private void addDataPanel(Panel p1, GridBagConstraints c1){
txtDataRowDisplay1 = new TextField[no_of_rec];
txtDataRowDisplay2 = new TextField[no_of_rec];
txtDataRowDisplay3 = new TextField[no_of_rec];
txtDataRowDisplay4 = new TextField[no_of_rec];
txtDataRowDisplay5 = new TextField[no_of_rec];
txtDataRowDisplay6 = new TextField[no_of_rec];
txtDataRowDisplay7 = new TextField[no_of_rec];
txtDataRowDisplay8 = new TextField[no_of_rec];
txtDataRowDisplay9 = new TextField[no_of_rec];
txtDataRowDisplay10 = new TextField[no_of_rec];

//initialize fields
for(int i = 0; i < no_of_rec; i++){
txtDataRowDisplay1[i] = new TextField(5);
txtDataRowDisplay2[i] = new TextField(5);
txtDataRowDisplay3[i] = new TextField(5);
txtDataRowDisplay4[i] = new TextField(5);
txtDataRowDisplay5[i] = new TextField(5);
txtDataRowDisplay6[i] = new TextField(5);
txtDataRowDisplay7[i] = new TextField(5);
txtDataRowDisplay8[i] = new TextField(5);
txtDataRowDisplay9[i] = new TextField(5);
txtDataRowDisplay10[i] = new TextField(5);

}

int cnt = 0;
for(int m = 0; m < txtDataRowDisplay1.length; m++ ){

c1.gridy = m + cnt;

c1.gridx = 0;
p1.add(txtDataRowDisplay1[m], c1);

c1.gridx = 1;
p1.add(txtDataRowDisplay2[m], c1);

c1.gridx = 2;
p1.add(txtDataRowDisplay3[m], c1);

c1.gridx = 3;
p1.add(txtDataRowDisplay4[m], c1);

c1.gridx = 4;
p1.add(txtDataRowDisplay5[m], c1);

c1.gridx = 5;
p1.add(txtDataRowDisplay6[m], c1);

c1.gridx = 6;
p1.add(txtDataRowDisplay7[m], c1);

c1.gridx = 7;
p1.add(txtDataRowDisplay8[m], c1);

c1.gridx = 8;
p1.add(txtDataRowDisplay9[m], c1);

c1.gridx = 9;
p1.add(txtDataRowDisplay10[m], c1);

cnt++;
}

}

private void display(String[] data){
for(int i = 0; i < data.length; i++){
txtDataRowDisplay1[i].setText(data[i]);
txtDataRowDisplay2[i].setText(data[i]);
txtDataRowDisplay3[i].setText(data[i]);
txtDataRowDisplay4[i].setText(data[i]);
txtDataRowDisplay5[i].setText(data[i]);
txtDataRowDisplay6[i].setText(data[i]);
txtDataRowDisplay7[i].setText(data[i]);
txtDataRowDisplay8[i].setText(data[i]);
txtDataRowDisplay9[i].setText(data[i]);
txtDataRowDisplay10[i].setText(data[i]);

}
}

}



Repainting is done when I click the "Next Item" button.

Topic: earn money with your IT skills Previous Topic   Next Topic Topic: How to widen the drop-down list in a JComboBox

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use