Richard87 Skrevet 28. mars 2006 Del Skrevet 28. mars 2006 Er det mulig og lage ett JPane(Eller lignende hvor jeg kan plassere componenter) hvor bakgrunnen er gjennomsiktig(har noen tegninger og logo'er etc. Er dette mulig? Lenke til kommentar
Iyon Skrevet 29. mars 2006 Del Skrevet 29. mars 2006 (endret) Hei Jeg har lenge vært på leting etter det du spør om, og har samlet kodesnutter her og der og laga et lite eksempel: package simplegui; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Paint; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class ScaledImagePanel extends JPanel { private Image bgImage; public ScaledImagePanel() { this.bgImage = (new ImageIcon("DSCF0509.JPG")).getImage(); } public void paintComponent(Graphics g) { double scaleX = this.getWidth() / (double) bgImage.getWidth(null); double scaleY = this.getHeight() / (double) bgImage.getHeight(null); AffineTransform xform = AffineTransform.getScaleInstance(scaleX, scaleY); ((Graphics2D) g).drawImage(bgImage, xform, this); } public static void main(String[] args) { //Noen paneler med ikke-aktive knapper for demoens skyld JPanel foo = new JPanel(new BorderLayout()); JPanel bar = new JPanel(); foo.setOpaque(false); bar.setOpaque(false); bar.setBorder(BorderFactory.createTitledBorder("Some Buttons and shit")); bar.add(new JButton("Jadda")); bar.add(new JButton("Ja rekti")); foo.add(bar, BorderLayout.NORTH); ScaledImagePanel sp = new ScaledImagePanel(); JFrame frame = new JFrame(); frame.getContentPane().add(sp); sp.add(foo); frame.pack(); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } kjipt at ikke tabs blir tatt hensyn til, men.. Endret 29. mars 2006 av jhsveli Lenke til kommentar
Richard87 Skrevet 29. mars 2006 Forfatter Del Skrevet 29. mars 2006 (endret) OK, det saag litt mer avansert ut en jeg tenkte meg, men siden jeg kommer til og ha kun3-4 forskjellig vinduer, er det sikkert like greit og lage 4 bakgrunns objecter, og legge til det jeg vil ha til ver av dem.... Men takk for forslaget... [EDIT] takk for tipset, setOpaque funket fint det:D Endret 29. mars 2006 av Richard87 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå