Guten Tag
schon wieder ich mit einer Frage:
GlassPane habe ich halbtransparent hingekriegt, aber wie lege ich das jetzt nur über das JScrollPane?
Das JScrollPane ist ein externes JAR mit vielen Methoden von mir gebastelt.
Jetzt möchte ich noch in diesem JAR ein GlassPane über das ganze JScrollPane legen, wenn aktionen länger dauern.
Wie mache ich das?
Mein GlassPane:
Wenn ich in der Hauptanwendung (JFrame) mein GlassPane adde, und bei bedarf auf setVisible(true) setzte, funktioniert es auch.
Ich kann es auch auf ein JPanel in der Hauptanwendung setzen... funktioniert auch!
Nur innerhalb meines JARs über das JScrollPane zulegen funktioniert nicht (wirft auch keine Fehler).
Meine test-Klasse des externen JAR:
Meine Idee ist es, dass ich nicht in der Hauptanwendung das GlassPane händeln muss sondern, dass das in meinem JAR passiert. Dieses erkennt die Recourcen intensiven Methoden.
Vielen Dank.
schon wieder ich mit einer Frage:
GlassPane habe ich halbtransparent hingekriegt, aber wie lege ich das jetzt nur über das JScrollPane?
Das JScrollPane ist ein externes JAR mit vielen Methoden von mir gebastelt.
Jetzt möchte ich noch in diesem JAR ein GlassPane über das ganze JScrollPane legen, wenn aktionen länger dauern.
Wie mache ich das?
Mein GlassPane:
Java:
package rTable;
import java.awt.AlphaComposite;
import java.awt.BorderLayout;
import java.awt.Cursor;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
public class GlassPane extends JPanel {
private static final long serialVersionUID = 1L;
public GlassPane(int statusBarHeight) {
super(new BorderLayout(0,0));
JPanel pPan = new JPanel(new BorderLayout(0,0));
pPan.setOpaque(true);
add(pPan, BorderLayout.SOUTH);
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setOpaque(true);
}
@Override
public void paint(Graphics g) {
BufferedImage image = new BufferedImage(getWidth(),getHeight(),BufferedImage.TYPE_INT_ARGB);
Graphics2D ig = (Graphics2D) image.getGraphics();
super.paint(ig);
Graphics2D g2 = (Graphics2D) g.create();
g2.setComposite(AlphaComposite.SrcOver.derive(.2f));
g2.drawImage(image,0,0,this);
g2.dispose();
}
}
Ich kann es auch auf ein JPanel in der Hauptanwendung setzen... funktioniert auch!
Nur innerhalb meines JARs über das JScrollPane zulegen funktioniert nicht (wirft auch keine Fehler).
Meine test-Klasse des externen JAR:
Code:
public class test extends JScrollPane {
GlassPane gp;
public test(){
gp = new GlassPane();
setGlassPane(gp);
//wenn dann benötigt:
gp.setVisible(true)
//wenn fertig:
gp.setVisible(false)
}
}
Meine Idee ist es, dass ich nicht in der Hauptanwendung das GlassPane händeln muss sondern, dass das in meinem JAR passiert. Dieses erkennt die Recourcen intensiven Methoden.
Vielen Dank.