Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
428 views
in Technique[技术] by (71.8m points)

java - more efficient layout than Box

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

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

1 Reply

0 votes
by (71.8m points)

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)?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...