transparent geht nicht (btw: rechteck)

teslar

Aktives Mitglied
hi

ich habe ein png bild, bei dem ich mir sehr sicher bin, das es teilweise transparent ist.
habe hier den teilcode:
Java:
jPanelL1 = new javax.swing.JPanel(){
            @Override
        public void paintComponent(Graphics g)
        {
        super.paintComponent(g);
        g.drawImage(spst.getSprite(0).getImage(), 0, 0, null);
        
        }};
        jPanelI.add(jPanelL1);
        jPanelL1.setBounds(14,11,173,70);
        jPanelL1.setBackground(null);

ohne das super.paintComponent(g); funktioniert es, aber mit der zeile wird der hintergrund weis.
ich könnte es einfach weglassen, nur ich weis nicht ob das so gut ist, hab auch gehöhrt man soll das so machen.

kann ich das in diesem fall einfach weglassen?

btw: möchte zudem ein gefülltes rechteck zeichnen, wie macht man das, höhrt sich komisch an aber ich kriegs einfach nicht hin....wie geht das?:oops:
 

pro2

Bekanntes Mitglied
Die paintComponent Methode bestimmt ja überhaupt erst mal, was wie gezeichnet wird.

Da kannst du auch ein Rechteck zeichen.
Du erstellst dir vorher ein Rectangle2D im Code, erstellst dir ein Graphics2D mit Hilfe von g in paintComponent und setzt in der paintComponent Methode
Code:
g.setFill(Color.RED);
, woraufhin du dein Rechteck dann zeichnest. Aber dazu findest du bestimmt viel bei google, such einfach mal nach Rectangle2D oder sowas.
 

teslar

Aktives Mitglied
danke, soll ich das rechteck im hauptcode oder in paintcomponent machen, weil das ändert sich immer wieder, da is es vllt schlauer das in der paintcomponent methode zu erstellen, oder?

edit: ich versteh die ganzen override methoden nicht, mach ich was falsch oder muss ich die alle ausfüllen?

edit:
so hab ich das jetzt gemacht aber kommt mir komisch vor:
Java:
Rectangle2D l = new Rectangle2D() {

                    @Override
                    public void setRect(double x, double y, double w, double h) {
                        throw new UnsupportedOperationException("Not supported yet.");
                    }

                    @Override
                    public int outcode(double x, double y) {
                        throw new UnsupportedOperationException("Not supported yet.");
                    }


                    @Override
                    public Rectangle2D createUnion(Rectangle2D r) {
                        throw new UnsupportedOperationException("Not supported yet.");
                    }

                    @Override
                    public double getX() {
                        throw new UnsupportedOperationException("Not supported yet.");
                    }

                    @Override
                    public double getY() {
                        throw new UnsupportedOperationException("Not supported yet.");
                    }

                    @Override
                    public double getWidth() {
                        throw new UnsupportedOperationException("Not supported yet.");
                    }

                    @Override
                    public double getHeight() {
                        throw new UnsupportedOperationException("Not supported yet.");
                    }

                    @Override
                    public boolean isEmpty() {
                        throw new UnsupportedOperationException("Not supported yet.");
                    }

                    @Override
                    public Rectangle2D createIntersection(Rectangle2D r) {
                        throw new UnsupportedOperationException("Not supported yet.");
                    }

                };
 
Zuletzt bearbeitet:

xehpuk

Top Contributor
Rectangle2D ist abstrakt. Es gibt drei Subklassen: Rectangle, Rectangle2D.Double und Rectangle2D.Float
Nimm eine davon.

Dein eigentliches Problem habe ich übrigens nicht verstanden.
Vielleicht kannst du ja mal dein Bild hochladen und dazu noch Screenshots von der Oberfläche und genauer beschreiben, was du erreichen möchtest.
 

HimBromBeere

Top Contributor
Diese ganzen Methoden brauchst du nur, sofern du eine neue Realisierung von Recatngle2D machen möchtest, wovon ich dir runlischst abrate (wozu auch, für int?). Wie Xehpuk schon gesagt hat, nimm eine der drei existierenden Klassen Rectangle2D.Double oder Float oder einfach nur Rectangle (das dürfte dann int sein, glaub ich).
Also etwas derart:
Java:
Rectangle2D rect = new Rectangle2D.Double(...);
 

teslar

Aktives Mitglied
also danke erstmal,

was ich machen möchte ist eine lebensanzeige, die sich je nach lebenspunkteanzahl füllt bzw leert.

die umrandung habe ich jetzt, jetz muss ich halt ein dynamisches rechteck machen, habe es auch überlegt, einfach mit einem image zu machen, aber das kostet eigentlich nur unnötig arbeitsspeicher (glaub ich zumindest).
g.fillrect (x,y,z,v)
habe ich folgendes problem:
Java:
jPanelL1 = new javax.swing.JPanel(){
            @Override
        public void paintComponent(Graphics g)
        {
        super.paintComponent(g);
        g.drawImage(spst.getSprite(0).getImage(), 0, 0, null);
        g.fillRect(10, 10, (int)100*(LP2/8000), 50);
        }};
        jPanelI.add(jPanelL1);
        jPanelL1.setOpaque(false);
        jPanelL1.setBounds(14,11,173,70);

ohne die berechnung wird es gezeichnet, mit nicht?, LP2=6000, somit kann es nicht
100*(LP2/8000)=0 sein....
 

HimBromBeere

Top Contributor
Java:
(int)100*(LP2/8000)
Hier steckt das Problem, du machst eine Int-Division. Um das zu Vermeiden, musst du irgendeinen der Operanden explizit in double oder float umwandeln:
Java:
(int)100*(LP2/8000.0)
 
Zuletzt bearbeitet:

Michael...

Top Contributor
ohne die berechnung wird es gezeichnet, mit nicht?, LP2=6000, somit kann es nicht 100*(LP2/8000)=0 sein....
doch die Berechnung liefert 0 als ergebnis, da hier mit Ganzzahlen gerechnet wird ist 6000/8000=0. Warum die Klammern? Lass diese doch einfach weg:
Code:
100*6000/8000
liefert dann das gewünschte (ganzzahlige) Ergebnis.
 

teslar

Aktives Mitglied
also einfach die klammern wegmachen ist für mich keine lösung, da mit 50lp dann 0 rauskommen wird.

(int)(100*(LP2/8000)) funzt , hab aber noch ein +1 hinzugefügt um mindestens eine breite von 1 zu haben,

mein problem ist hiermit gelöst, danke an alle:applaus:
 

teslar

Aktives Mitglied
ich habe es ausprobiert und es kam 0 raus,


und ich habe es so angelegt, das bei vollem leben die passende anzahl rauskommt, funzt auch soweit,


aber das mit dem runden wäre auch eine idee
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S JTextArea background Transparent geht nicht AWT, Swing, JavaFX & SWT 23
H Transparent zeichnen mit drawImage in paintComponent Methode AWT, Swing, JavaFX & SWT 3
L AWT .gif image transparent machen AWT, Swing, JavaFX & SWT 3
E Transparent zeichnen AWT, Swing, JavaFX & SWT 2
L JavaFX TableView background transparent machen AWT, Swing, JavaFX & SWT 7
V JavaFX Teile eines Images Transparent machen AWT, Swing, JavaFX & SWT 4
stylegangsta JButton Transparent anzeigen AWT, Swing, JavaFX & SWT 9
T Rectangle Transparent und darunter liegende Objekte Bedienbar AWT, Swing, JavaFX & SWT 0
B Dropdown "Einstellungen" auf JPanel, transparent AWT, Swing, JavaFX & SWT 1
T AWT Bild laden und transparent zeichnen AWT, Swing, JavaFX & SWT 2
T Jframe Transparent machen AWT, Swing, JavaFX & SWT 3
N Swing Frame ungewollt transparent! AWT, Swing, JavaFX & SWT 2
C Swing Button color transparent AWT, Swing, JavaFX & SWT 4
eLogic png transparent auf Desktop Zeichnen AWT, Swing, JavaFX & SWT 3
S Graphics2D: Transparent übereinander zeichnen AWT, Swing, JavaFX & SWT 7
A Swing JCheckbox transparent machen AWT, Swing, JavaFX & SWT 7
B RootPane bzw CardLayout Transparent machen AWT, Swing, JavaFX & SWT 7
N Window transparent, Komponenten nicht transparent AWT, Swing, JavaFX & SWT 11
M Wie kann man 2 JPanel aufeinander transparent legen? AWT, Swing, JavaFX & SWT 4
lumo SWT Canvas transparent AWT, Swing, JavaFX & SWT 4
I 2 Panels übereinander, 1 transparent AWT, Swing, JavaFX & SWT 2
S JFrame transparent? AWT, Swing, JavaFX & SWT 8
martin82 Swing JTable - selectionBackground transparent AWT, Swing, JavaFX & SWT 7
N GridBagLayout, leere grids (Hintergrund) transparent? AWT, Swing, JavaFX & SWT 3
SuperSeppel13 Komponente transparent übermalen AWT, Swing, JavaFX & SWT 2
R Swing Warum wird der Inhalt auch Transparent? AWT, Swing, JavaFX & SWT 8
Guybrush Threepwood JRadioButton transparent AWT, Swing, JavaFX & SWT 2
K JProgressBar transparent AWT, Swing, JavaFX & SWT 10
R JPanel Transparent AWT, Swing, JavaFX & SWT 3
Kr0e Png transparent AWT, Swing, JavaFX & SWT 1
G JTabbedPane transparent AWT, Swing, JavaFX & SWT 2
K Swing: ContentPane von JDialog ist transparent (Fehler) AWT, Swing, JavaFX & SWT 10
T nach resize transparent weg AWT, Swing, JavaFX & SWT 4
G JComboBox und JTable transparent AWT, Swing, JavaFX & SWT 18
G JButton transparent AWT, Swing, JavaFX & SWT 3
M Hintergrund Transparent machen? AWT, Swing, JavaFX & SWT 3
S Button transparent machen AWT, Swing, JavaFX & SWT 8
G schwarzen hintergrund von png transparent machen AWT, Swing, JavaFX & SWT 2
B JFrame Transparent darstellen AWT, Swing, JavaFX & SWT 4
S transparent + bewegen AWT, Swing, JavaFX & SWT 3
F Transparent bzw. transfluent(durscheinend) drucken? AWT, Swing, JavaFX & SWT 2
F Checkbox transparent machen ? AWT, Swing, JavaFX & SWT 2
L JScrollPane Transparent machen AWT, Swing, JavaFX & SWT 4
G hintergrund von JFrame/Container transparent machen AWT, Swing, JavaFX & SWT 2
D JWindow => transparent ? AWT, Swing, JavaFX & SWT 2
T BufferedImage Farbe "Transparent" AWT, Swing, JavaFX & SWT 21
lin Bild laden und transparent machen AWT, Swing, JavaFX & SWT 3
T JPanel Transparent machen AWT, Swing, JavaFX & SWT 5
J Rahmen vom Bild transparent machen AWT, Swing, JavaFX & SWT 4
Juelin Text und Backgroundcolor im Label geht nicht AWT, Swing, JavaFX & SWT 7
komplettlost Vollbildmodus für MacOs Nutzer geht nicht AWT, Swing, JavaFX & SWT 13
B Swing Menü geht nicht AWT, Swing, JavaFX & SWT 5
izoards Bild ausdrucken - PageFormat setzen geht nicht AWT, Swing, JavaFX & SWT 5
J import javafx.fxml* bei JavaFX 13 geht nicht mehr AWT, Swing, JavaFX & SWT 7
S PatentComponent geht nicht? AWT, Swing, JavaFX & SWT 3
H automatische Anzahl der Spalten ermitteln -> geht nicht AWT, Swing, JavaFX & SWT 6
B JavaFX Wo liegt mein Gedankenfehler ??? KeyEvent geht nicht ... AWT, Swing, JavaFX & SWT 8
J Warum geht das nicht? if-else usw..... compilieren geht nicht -- HILFE!!! AWT, Swing, JavaFX & SWT 10
LexeB4F setValueAT geht nicht... wieso? AWT, Swing, JavaFX & SWT 14
T JLabel in die Mitte(JLabel.CENTER geht nicht) AWT, Swing, JavaFX & SWT 12
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
F Swing String[] in JTextArea ausgeben. Jeder Eintrag in neue Zeile, aber ohne "\n"- Geht das? AWT, Swing, JavaFX & SWT 3
B Swing Form undecorated: Beim Bewegen geht die Maus immer automatisch zur linken Seite. AWT, Swing, JavaFX & SWT 7
I JavaFX - MP3 geht nicht AWT, Swing, JavaFX & SWT 4
N gewünschte ActionListener bei RadioButton mit isSelected geht nicht AWT, Swing, JavaFX & SWT 2
C Swing Update von swing-TableModels per Thread. Eins geht, das andere nicht, warum? AWT, Swing, JavaFX & SWT 12
S KeyListener geht nicht AWT, Swing, JavaFX & SWT 12
B JInternalFrame Focus setzten geht nicht AWT, Swing, JavaFX & SWT 2
D Swing fullscreen switch geht nicht richtig AWT, Swing, JavaFX & SWT 8
F Icongröße ändern, geht das ? AWT, Swing, JavaFX & SWT 2
Q Swing MouseListener auf JTable geht nicht AWT, Swing, JavaFX & SWT 2
0 JTable Spaltenbreite automatisch an Inhalt anpassne geht nicht AWT, Swing, JavaFX & SWT 3
antonbracke Multiplayer Shooter- Wie geht das mit Canvas & Graphics AWT, Swing, JavaFX & SWT 6
K Options-Frame integrieren (zum zuschalten und wegschalten wie geht man da ran? AWT, Swing, JavaFX & SWT 7
R JTextField mit abgerundeten Ecken - Geht über Grenze hinaus AWT, Swing, JavaFX & SWT 4
B Java und ansprechende Benutzeroberflächen - geht das? AWT, Swing, JavaFX & SWT 16
V Swing Custom JToggleButton in JTable - Click-Event geht erst beim zweiten Mal AWT, Swing, JavaFX & SWT 7
C Java2D Transparenz geht bei einfärben verloren AWT, Swing, JavaFX & SWT 7
E Null-Layout - Wie geht es ohne? AWT, Swing, JavaFX & SWT 19
Y LookAndFeel Nimbus einschalten geht nicht AWT, Swing, JavaFX & SWT 31
M Bild aus .jar Archiv laden geht nicht AWT, Swing, JavaFX & SWT 6
L Stopp Button geht nicht AWT, Swing, JavaFX & SWT 2
S JDesktopPane bei Button-Klick anzeigen geht nicht AWT, Swing, JavaFX & SWT 5
D JList Scrollbar machen geht nicht AWT, Swing, JavaFX & SWT 4
J Label mit transparentem hintergrund - geht das? AWT, Swing, JavaFX & SWT 21
H Sub-Dialog von modalem JDialog aus aufrufen - geht das? AWT, Swing, JavaFX & SWT 6
B Panels stapeln, geht das? AWT, Swing, JavaFX & SWT 7
P SetBounds auf JPanel geht nicht! AWT, Swing, JavaFX & SWT 2
S SWT Composite mit Layout Manager geht nicht AWT, Swing, JavaFX & SWT 4
S JPanel geht über Rand hinaus AWT, Swing, JavaFX & SWT 7
E setAlwaysOnTop geht verloren AWT, Swing, JavaFX & SWT 3
B Swing Variable in JTextfield geht nicht AWT, Swing, JavaFX & SWT 10
B Swing setDefaultButton geht nicht - Komponente fängt Events ab AWT, Swing, JavaFX & SWT 5
M FileFilter geht nicht AWT, Swing, JavaFX & SWT 5
A repaint() geht nicht ? AWT, Swing, JavaFX & SWT 5
D Jlist auf 10 Zeilen begrenzen geht bei mir nicht AWT, Swing, JavaFX & SWT 2
D Runtime.getRuntime.exec() + SWT oder Swing = geht nicht AWT, Swing, JavaFX & SWT 2
M Action.DISPLAYED_MNEMONIC_INDEX_KEY geht nicht mehr AWT, Swing, JavaFX & SWT 2
F JScrollPane setLayout geht nicht AWT, Swing, JavaFX & SWT 2
R MVC: System.out.prinln in View umleiten geht nicht richtig AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen


Oben