Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I've got some very old code which uses a Box to list some information. I create it like so:

Box patterns = Box.createVerticalBox();

Very (very) often, new items are added and old items are removed eg:

label = new JLabel("xyz");
patterns.add(label);

and later

patterns.remove(label);

whenever something is added ore removed I have to have it repaint, so I call:

patterns.revalidate();
patterns.repaint();

Problem is, since this happens very often it chokes up the UI. I think I need a better implementation in order to make it more efficient.

I know I could maintain a list of the active items in the background and then intermittently update the actual UI (batch update) but...

Can someone suggest a more efficient alternative approach?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
401 views
Welcome To Ask or Share your Answers For Others

1 Answer

Why don't you just use a JList and implement a cell renderer?

Or more flexibility with a JTable and implement a table cell renderer (returns a Component instead)?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...