ich habe meine JPanel haben:Wie trasparance Panel mit RemoveAll()
private int status = 0;
public serietv() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 848, 566);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanel labelpanel = new JPanel(); //labelpanel is my problem
labelpanel.setBounds(92, 329, 625, 128);
contentPane.add(labelpanel);
labelpanel.setLayout(null);
//here my label go transparent
Color c=new Color(200,0,0,20);
labelpanel.setBackground(c);
labelpanel.setOpaque(true);
JLabel[] labelapp = new JLabel[1000]; //create an arrayJLabel for my images
mit diesem Code mein Panel transparent wird mit rotem transparentem Hintergrund wie folgt aus:
, aber wenn ich auf JLabel klicken "succ":
JLabel succ = new JLabel("");
succ.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
succ.setBounds(727, 350, 82, 79);
contentPane.add(succ);
succ.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent f) {
int x = 0;
int i = 0;
labelpanel.removeAll();
try {
for (i = status; i < status + 5; i++) {
RidimIcon locand = new RidimIcon();
labelapp[i].setBounds(30 + x, 15, 90, 100);
Border border = BorderFactory.createLineBorder(Color.BLACK, 3);
labelapp[i].setBorder(border);
labelapp[i].setIcon(locand.newicona(pathicon[i],labelapp[i]));
labelpanel.add(labelapp[i]);
x = x + 120;
}
status = i;
labelpanel.revalidate();
labelpanel.repaint();
} catch (NullPointerException e) {
labelpanel.revalidate();
labelpanel.repaint();
appoggio = i - status;
status = i - appoggio;
}
}
});
dies mein ridimIcon ist: public class ridimIcon {
ImageIcon image;
Image im;
Image myImg;
ImageIcon newImage;
int i=0;
public ImageIcon newicona (String img, JLabel lb){
image = new ImageIcon(img);
im = image.getImage();
myImg = im.getScaledInstance(lb.getWidth(), lb.getHeight(), Image.SCALE_SMOOTH);
newImage = new ImageIcon(myImg);
return newImage;
}
} meine Platte wieder in den normalen, nicht transparent .. wie folgt aus: ich brauche alle Komponenten zu entfernen, aber nicht die Transparenz entfernen .. wie kann ich es beheben?
1) Um eine bessere Hilfe zu erhalten, geben Sie ein [MCVE] oder [Short, Self Contained, Correct Example] (http://www.sscce.org/) ein. 2) Java-GUIs müssen auf verschiedenen Betriebssystemen, Bildschirmgrößen, Bildschirmauflösungen usw. mit verschiedenen PLAFs in verschiedenen Locales arbeiten. Als solche sind sie nicht für ein perfektes Pixel-Layout geeignet. Verwenden Sie stattdessen Layout-Manager oder [Kombinationen davon] (http://stackoverflow.com/a/5630271/418556) zusammen mit Layout-Auffüllung und Rahmen für [Leerraum] (http://stackoverflow.com/a/17874718/ 418556). .. –
.. 3) Anstatt Komponenten zu entfernen und hinzuzufügen, verwenden Sie ein ['CardLayout'] (http://download.oracle.com/javase/8/docs/api/java/awt/CardLayout.html) wie gezeigt in [dieser Antwort] (http://stackoverflow.com/a/5786005/418556). 4) Verwenden Sie eine logische und konsistente Form der Einrückung von Codezeilen und -blöcken. Die Einrückung soll den Codefluss leichter nachvollziehen lassen! –
Kannst du mir ein Beispiel mit meinem Code zeigen? –