Also ich mache eine GUI, und ich habe ein Hintergrundbild dafür. Ich weiß nicht, wie man es als Hintergrund setzt, also wäre jede Hilfe gut. eine Erkundung wäre auch gut. Nachdem wir dieses Bild als Hintergrund erhalten haben, wie wird die Größe des Bildes auf die Größe des Fensters gebracht? wie image.setSize(frame.getHeight(), frame.getWidth());
aber ich weiß nicht, ob das funktionieren würde. Der Bildname lautet ABC0001.jpg und der Bildname ist frame. Vielen Dank!Wie ändere ich ein Hintergrundbild in einer Java-GUI?
Antwort
Um das Bild zu erhalten, um die Größe, können Sie entweder
public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, getWidth(), getHeight(), this); // draw the image
}
verwenden oder Sie können einen Componentlistener verwenden, der wie folgt implementiert ist:
Die Bildqualität verschlechtert sich Zeit mit der zweiten Lösung, so empfiehlt es sich, das Original und die Kopie getrennt zu halten.
Ein Tipp. Da 'paintComponent' eine' JComponent' oder alles, was von ihr erbt, und 'JComponent'' ImageObserver' impliziert, ändern Sie die 'null' in draw zu' this'. Gute Ansprache 1) Erwähnen Sie andere Möglichkeiten, die Größe von Bildern zu ändern, obwohl ich glaube, dass "getScaledInstance" weitgehend aufgegeben wird zugunsten noch besserer Möglichkeiten, ein Bild zu skalieren. 2) Eine Notiz machen, um das Original zu behalten. –
'RenderingHints' kann verwendet werden, um einen bestimmten Interpolationstyp in' drawImage() 'vorzuschlagen. – trashgod
was macht das 'this'? – PulsePanda
Erstellen Sie eine Klasse die erweitert JPanel. Haben diese Klasse das Bild laden, indem paintcomponent zwingende
class BackgroundPanel extends JPanel
{
Image img;
public BackgroundPanel()
{
// Read the image and place it in the variable img so it can be used in paintComponent
img = Toolkit.getDefaultToolkit().createImage("ABC0001.jpg");
}
public void paintComponent(Graphics g)
{
g.drawImage(img, 0, 0, null); // draw the image
}
}
Nun, da Sie diese Klasse haben, fügen Sie einfach diese zu Ihrem JFrame (oder wo auch immer Sie den Hintergrund wollen).
//create refrence if you want to add stuff ontop of the panel
private BackgroundPanel backGroundPanel;
//constructor
add(backGroundPanel, BorderLayout.CENTER);
Die Größe des Hintergrundes wird der gesamte Rahmen, so dass keine Notwendigkeit, füllen Sie es zu skalieren, wenn Sie es wollen, dass kleinere
Ich glaube, es ist besser, das Hintergrundbild als Inhaltsfenster festzulegen, da dann alle weiteren GUI-Komponenten "über" dem Hintergrundbild erscheinen. – davidfrancis
Angenommen, so. Ich habe das gerade auf den Kopf geschrieben. Wenn Sie die Komponenten im backgroundPanel hinzufügen, erscheinen sie immer noch "über" dem Hintergrundbild. –
Ja werden sie, es ist ziemlich gut für den oberen Teil Ihres Kopfes, ich musste suchen 8 =} – davidfrancis
- 1. Wie ändere ich das Hintergrundbild der Tab-Leiste in Ios?
- 2. Wie setze ich ein Hintergrundbild in Java?
- 3. Wie ändere ich das Hintergrundbild von einem Windows-Telefon-App
- 4. Wie ändere ich die ausgewählte Registerkarte Indikator Hintergrundbild
- 5. Wie ändere ich das Hintergrundbild mithilfe der jQuery-Animation?
- 6. Wie ändere ich das Hintergrundbild alle X Sekunden?
- 7. Wie ändere ich ein Bild auf einer Folie in Latex?
- 8. Wie füge ich ein Hintergrundbild in jquery ein?
- 9. Wie starte ich ein Hintergrundbild 20px runter?
- 10. Wie verschiebe ich ein Hintergrundbild mit CSS
- 11. Wie ändere ich ein Array mit einer Funktion?
- 12. Wie ändere ich das Bild einer PictureBox?
- 13. Android: Wie man ein zentriertes Hintergrundbild in einer Ansicht hat
- 14. Wie ändere/bearbeite ich ein Meteor-Paket?
- 15. Wie ändere ich ein DOM-Element?
- 16. Wie ändere ich das Hintergrundbild von UIButton, während ich darauf klicke?
- 17. Wie ändere ich eine Achse einer Rotationsmatrix?
- 18. Wie ändere ich die Sichtbarkeit einer Ansicht?
- 19. Wie setze ich ein Hintergrundbild in Xcode mit swift?
- 20. Wie mache ich ein Hintergrundbild in CSS ansprechend? bootstrap
- 21. Wie stelle ich das Hintergrundbild eines DIV in CSS ein?
- 22. Wie kann ich ein Hintergrundbild dynamisch in JPanel laden?
- 23. Wie ändere ich die Schriftgröße einer Tabellenspalte?
- 24. Wie ändere ich das Trennzeichen einer Liste?
- 25. Wie ändere ich die MongoDB-Abfrage in ein JSON?
- 26. Wie ein Hintergrundbild in WinRT TILE?
- 27. Wie überprüfen Sie in Nightwatch ein Hintergrundbild?
- 28. Vollbild-Hintergrundbild in einer Aktivität
- 29. Wie ändere ich emacs Config in Lisp in einer Box
- 30. Hintergrundbild in einer Image Map
Wahrscheinlich duplizieren von: http://stackoverflow.com/questions/1064977/setting-background-images-in-jframe – davidfrancis
Bitte suchen Sie zuerst SO. Diese beiden Fragen wurden SO * viele * mal zuvor gestellt und beantwortet. –