ورود

View Full Version : remove کردن component



hossein71
شنبه 21 مرداد 1391, 09:32 صبح
سلام
در برنامه من یک دکمه هست که وقتی روش کلیک میشه چند تا از کامپوننت ها remove میشن ولی تا وقتی که یک بار برنامه رو minimize نکنم و دوباره بیارمش بالا تغییرات نشون داده نمیشه.
باید چیکار کنم؟

spiderman200700
شنبه 21 مرداد 1391, 12:11 عصر
سلام.
به چه صورتی کدهاتو نوشتی؟

hossein71
شنبه 21 مرداد 1391, 16:54 عصر
با استفاده از removeAll کامپوننت ها برداشته میشه ولی باید یه بار برنامه رو minimize کنم تا به درستی نمایش داده بشه.
ارتباطی به کارت گرافیک نداره؟

public class ActionEvent implements ActionListener
{
@Override
public void actionPerformed(java.awt.event.ActionEvent e) {
PlanPanel.removeAll();
DataBase DB=new DataBase();
String data[][];
data=DB.Records(TS.getText());
int xBox=10,yBox=10;
for(int i=0;i<DB.Count;i++){
PlanPanel.add(new BoxPlan(data[i]));
if((i%2)==0)
((BoxPlan)PlanPanel.getComponents()[i]).setBounds(10, yBox, 265, 100);
else{
((BoxPlan)PlanPanel.getComponents()[i]).setBounds(xBox, yBox, 265, 100);
yBox+=((BoxPlan)PlanPanel.getComponents()[i]).getHeight()+10;
}
if(i==0)
xBox=((BoxPlan)PlanPanel.getComponents()[i]).getWidth()+20;
}
}
}

spiderman200700
شنبه 21 مرداد 1391, 17:18 عصر
به کارت گرافیک هیچ ربطی نداره
بعد از PlanPanel.removeAll(); از PlanPanel.repaint(); استفاده کن تا درست بشه.

hossein71
شنبه 28 مرداد 1391, 10:30 صبح
سلام ممنون repaint رو گذاشتم حل شد.
ولی یه سوال دیگه در حالت قبلی layout رو برای PlanPanel ، null گذاشته بودم ولی الان که به FlowLayout تغییر دادم وقتی روی دکمه کلیک میکنم کامپوننت ها نمایش داده نمیشه و باید حتما یه جای فرم کلیک کنم تا کامپوننت ها نمایش داده بشه.

PlanPanel.setLayout(new FlowLayout());
PlanPanel.setComponentOrientation(ComponentOrienta tion.LEFT_TO_RIGHT);
}
public class ActionEvent implements ActionListener
{
@Override
public void actionPerformed(java.awt.event.ActionEvent e) {
PlanPanel.removeAll();
PlanPanel.repaint();
DataBase DB=new DataBase();
String data[][];
data=DB.Records(TS.getText());
int xBox=10,yBox=10;
for(int i=0;i<DB.Count;i++){
PlanPanel.setFocusable(true);
PlanPanel.add(new BoxPlan(data[i]));
((BoxPlan)PlanPanel.getComponents()[i]).setPreferredSize(new Dimension(265, 100));
}
}
}

hossein71
دوشنبه 30 مرداد 1391, 10:43 صبح
مشکل با updateUI حل شد

class ActionEvent implements ActionListener
{
@Override
public void actionPerformed(java.awt.event.ActionEvent e) {
PlanPanel.removeAll();
PlanPanel.repaint();
DataBase DB=new DataBase();
String data[][];
data=DB.Records(TS.getText());
for(int i=0;i<DB.Count;i++){
PlanPanel.add(new BoxPlan(data[i]));
((BoxPlan)PlanPanel.getComponents()[i]).setPreferredSize(new Dimension(265, 100));
}
PlanPanel.updateUI();
}
}