Buttons über Bilder?

Status
Nicht offen für weitere Antworten.
S

sneaker27

Gast
Hallo,


habe ein problem...

hab mir ein formular erstellt...
mit einem bild....
und will über das bild labels, buttons oder textfelder erstellen...

wenn ich das so angeb...
un zuerst das bild lade, bringt er die buttons nicht in ide richtige position
wenn ich das bild am ende erst lade, holt er die felder rein
aber das bild nicht...


somit mein problem,

wie bekomm ich ein bild in ein formular, auf dem ich buttons ect. positionieren kann


das bild als hintergrundbild machen?!? und dann die objekte darauf erstellen? und das formular fixieren?!?
brauch dringend hilfe :-/
 

The_S

Top Contributor
Code:
	public static void main(String[] args) {

		JPanel pane = new JPanel() {
			
			public void paintComponent(Graphics g) {
				super.paintComponent(g);
				g.setColor(Color.red);
				g.fillRect(10, 10, 40, 40);
			}
		};
		JFrame frame = new JFrame();
		frame.add(pane);
		pane.add(new JButton("button"));
		frame.setVisible(true);
	}
 
S

sneaker27

Gast
mhmm
aber du hast jetzt nur einem gewissen bereich eine farbe zugeteilt,
ich möchte jedoch auf meiner bilddatei ( *.jpg)
einen button haben...


zur zeit bekomme ich jedoch:
1 NUR den button
2 NUR das bild
3 BEIDES, jedoch die buttons nicht AUF dem bild

:-/
 
S

sneaker27

Gast
das ding is doch....

du hast die grösse des bildes festgelegt
un den button nicht innerhalb des bildes positioniert
ich möchte jedoch die position des buttons IM BILD HABEN
und das ist bei dir auch nicht der fall, darum geht es mir
 

The_S

Top Contributor
Na freilich ist das bei mir der Fall ... dann verwend halt n anderen Layoutmanager dann kannste den Button besser positionieren ...
 

The_S

Top Contributor
Bau am Besten mal ein KSKB (kleines selbstkompilierendes Beispiel) und poste es hier. Ich besser es dir dann aus ;) .
 
S

sneaker27

Gast
import java.awt.*;
import java.io.*;
import java.net.*;

import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.JFrame;



public class dsa
{

public JLabel Textfeld;
public JFrame f;
private JLabel Land1;


public dsa()
{
initializeComponent();
}

public void initializeComponent(){

JFrame f = new JFrame();
f.setContentPane(new BackgroundPanel());
f.setSize(1030,740);
f.setLocation(1,1);
f.setResizable(false);
f.setVisible(true);


Textfeld = new JLabel();
addComponent(f, Textfeld, 33,92,169,18);
Textfeld.setText("blablupp");
Textfeld.setVisible(true);
Textfeld.setLocation(1, 1);
Textfeld.setVisible(true);
Textfeld.setSize(300, 300);


Land1 = new JLabel();
Land1.setText("Tedrassil");

addComponent(f, Land1, 100,100,169,18);
}


private void addComponent(Container container,Component c,int x,int y,int width,int height)
{
c.setBounds(x,y,width,height);
container.add(c);
}


public static void main(String[] args){
new dsa();
}

}






class BackgroundPanel extends JPanel
{
Image image;

public BackgroundPanel()
{
loadImage();
}


public void paintComponent(Graphics g)
{
super.paintComponent(g);
int width = getWidth();
int height = getHeight();
int imageWidth = image.getWidth(this);
int imageHeight = image.getHeight(this);
int x = (width - imageWidth)/2;
int y = (height - imageHeight)/2;
g.drawImage(image, x, y, this);
}


private void loadImage()
{
String fileName = "image/Welt.jpg";
try
{
URL url = getClass().getResource(fileName);
image = ImageIO.read(url);
}
catch(MalformedURLException mue)
{
System.out.println(mue.getMessage());
}
catch(IOException ioe)
{
System.out.println(ioe.getMessage());
}
}

}
 

Azrahel

Bekanntes Mitglied
Pack das Bild auf ein JPanel, und adde das in deine ContentArea von deinem JFrame.

Dann bauste die ein zweites JPanel, machst das opaque(true/false, weiss ich jetzt nicht genau) damit es durchsichtig ist, und arbeitest zum Buttons und was du noch auf deinem Formular haben willst mit dem zweiten JPanel weiter. das addest du dann auch auf deine ContentPane (z-order beachten, sonst siehste nix von deinem Formular :) )

fertisch :lol:
 

The_S

Top Contributor
Funktioniert ohne Probleme, aber wenn du schon die exakte Position deiner Componenten setzen willst, solltest du dem entsprechenden Container auch vorher das Null-Layout zuweisen. also einfach nach

Code:
JFrame f = new JFrame()

noch ein

Code:
f.setLayout(null);

einfügen. BTW ist generell von der Verwendung des Null-Layouts abzuraten!!!
 
S

sneaker27

Gast
oh wei oh wei....
das is abba n act

aber danke,
bei weiteren probs poste ich nochmal ;D
 

Azrahel

Bekanntes Mitglied
Wieso errinnert mich das an das schwarze Auge? :D

Du addest alles direkt in dein JFrame (wenn ich deinen code, den man übrigens in Code-Tags packen sollte, richtig deute). geht auch, klar, jedoch würd ich dann an deiner stelle nur den Background direkt in das JFrame packen und die Textfelder/Labels auf dein BackgroundPanel. oder Zwei panels für Background und Foreground machen.

Sonst haste alles im ContentPane des JFrame rumfliegen und musst das mit Z_order immer anordnen das auch alles zu sehen ist was man sehen soll.
 

Azrahel

Bekanntes Mitglied
Ja, ok, Hobbit, das das geht bestreite ich nicht (wär ich ja auch schön doof), nur ich mag halt nicht gern einen Topf in dem alles drin rumschwimmt was ich so brauche, ich schichte mir das gern. Ist aber wohl Geschmackssache und wohl auch davon abhängig was er noch so alles machen will (z.b. wechselnde Hintergründe) dann ists schon praktisch wenn man ein Layer hat nur für den Background und ein Layer für Bedienelemente.

Warum ist generell vom Null-Layout abzuraten? grad für mein 2D-Spielchen hab ich das nullen müssen, weil ich sonst nicht hinbekommen hab was ich wollte. Hat das noch nen tieferen Sinn?
 

The_S

Top Contributor
Ich geh halt davon aus, dass das was er und gezeigt hat nur ein KSKB ist und nichts bzw. nur wenig mit dem eigenltichen Programm zu tun hat, nachdem ich ihn ja auch dazu aufgefordert habe ein KSKB zu erstellen. Hat ja letztendlich nur ein setLayout(null) gefehlt, dass er in seiner richtigen applikation nur noch einsetzen muss ;) .

Schon 10000mal erklärt, aber für dich nocheinmal ;) : Ein durch Verwendung eines Null-Layouts kann es je nach Betriebssystem (sogar schon bei unterschiedlichen Windows-Systemen) zu Verzerrungen der GUI kommen, was ja dann nicht mehr ganz so schön ist ... Natürlich gibt es aber auch fälle, wo man um ein Null-Layout nicht herumkommt. Aber da es ja mittlerweile sehr gute LayoutManager (TableLayout FormLayout) gibt, ist es selten, dass man ein Null-Layout wirklich anwenden muss.
 

The_S

Top Contributor
brauchst eigenltich nur auf www.jgoodies.com . Mit dem Layoutmanager kannste so ziemlich alles machen. Und dann noch das LaF von der Webisite einbinden und du hast ne wunderschöne Applikation :)
 
S

sneaker27

Gast
Guten Morgen,

ich schau montag morgen hier rein,
seh das, les den Beitrag vom Hobbit,
und innerhalb ner halben Minute sind meine Sorgen vergangen.
Hobbit du bist mein Gott ^^
thx
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
kodela Datenübergabe über Buttons Allgemeine Java-Themen 8
M Tastatur eingabe über Buttons Allgemeine Java-Themen 15
berserkerdq2 Shapes als Buttons nutzen, schlechter Programmierstyle? Allgemeine Java-Themen 1
berserkerdq2 Was heißt es mit FXML Listener zu setzen ind Buttons zu erstellen? Allgemeine Java-Themen 6
S Buttons nacheinander ausführen Allgemeine Java-Themen 2
N Eigenschaften eines Buttons per Setter verändern Allgemeine Java-Themen 5
J Farbe von Buttons mehrmals ändern Allgemeine Java-Themen 5
D Java zeigt Buttons nicht korrekt an Allgemeine Java-Themen 0
E Swing andere schreibart für jButtoni (i = Zahl des Buttons) Allgemeine Java-Themen 6
E Swing Buttons auf knopfdruck(anderer Button) erstellen Allgemeine Java-Themen 6
D Methoden Buttons erscheinen doppelt nach Wiederholung in Schleife Allgemeine Java-Themen 1
Tausendsassa Interface Buttons Background ändern! Wie?? Allgemeine Java-Themen 10
K Methode soll neue Buttons erstellen Allgemeine Java-Themen 5
C ActionListener zwei Buttons zuweisen Allgemeine Java-Themen 11
A Inhalt ListEditor und Buttons ausblenden Allgemeine Java-Themen 5
C Grafiken für Buttons Allgemeine Java-Themen 6
S Hintergrundname eines Buttons ermitteln Allgemeine Java-Themen 3
G Zoomen einer Panels mit Buttons Allgemeine Java-Themen 7
G Anonymen Buttons in for schleife ActionListener hinzufügen Allgemeine Java-Themen 5
J Buttons in einer jsp Allgemeine Java-Themen 13
B kleines modales transparents Fenster ohne rahmen und buttons Allgemeine Java-Themen 15
N Reaktion eines Buttons in einem Array auf einen Klick. Allgemeine Java-Themen 5
D JTable und Buttons Allgemeine Java-Themen 16
P id eines Buttons Allgemeine Java-Themen 2
MQue addActionListener für mehrere Buttons Allgemeine Java-Themen 2
MQue Auslösen eines Events beim Drücken eines Buttons Allgemeine Java-Themen 12
MQue HintergrundFarbe des Buttons beim drücken soll bleiben Allgemeine Java-Themen 2
MQue Images für Buttons Allgemeine Java-Themen 5
P Eigenschaften eines Buttons überschreiben/ändern Allgemeine Java-Themen 2
L ActionListener / Buttons Allgemeine Java-Themen 8
L Buttons unsichtbar, Transparent Allgemeine Java-Themen 6
S showMessageDialog ohne Buttons? Allgemeine Java-Themen 4
C Webbilder oder Buttons anklicken Allgemeine Java-Themen 2
G JTable + Buttons Allgemeine Java-Themen 7
G Leere Fenster (Keine Schrift, Reiter/ Buttons) bei Java Allgemeine Java-Themen 5
G Bilder für Buttons in JarFile Allgemeine Java-Themen 5
U Transparent Buttons - unterschiedliche Java-Versionen Allgemeine Java-Themen 8
F buttons mit tags oderso? Allgemeine Java-Themen 6
W Jar-File Start nur über Terminal Allgemeine Java-Themen 13
A ByteArray über Socket Allgemeine Java-Themen 3
berserkerdq2 Text über einen Shape anzeigen (Scenebuilder) Allgemeine Java-Themen 1
I 2D-Grafik Vektor-Grafik über die Zwischenablage nach Adobe Illustrator transferieren Allgemeine Java-Themen 8
TheSkyRider Methode über DataInputStream "auslösen" Allgemeine Java-Themen 6
I OpenPDF erzeugt riesige PDFs, wenn Grafiken über PdfGraphics2D#drawImage gezeichnet werden Allgemeine Java-Themen 1
T Etikettendrucker über TCP-IP Allgemeine Java-Themen 1
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
B Liste ändern während Iteration über Diese? Allgemeine Java-Themen 16
Master3000 Java Konsole über Buffered Reader Zeilenweise auslesen ? Allgemeine Java-Themen 26
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
L Aufwandsabschätzung: Android-App Aufnahmefunktion (foto) und zweiter Ebene über dem Foto (teiltransparent) Allgemeine Java-Themen 6
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
J Namen von Methoden über Reguläre Ausdrücke bearbeiten Allgemeine Java-Themen 6
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
M Keine weitere Eingabe in der Main möglich. Eventueller Ansatz über while. Allgemeine Java-Themen 8
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
W Variablenübergabe über mehrere Klassen Allgemeine Java-Themen 4
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M Threads über Kommandozeile Allgemeine Java-Themen 5
david19 Software AE über Domain laufen lassen Allgemeine Java-Themen 0
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
T Problem mit externen Datenbankzugriff über SSH Tunnel Allgemeine Java-Themen 4
K Auf Dateiverzeichnis extern zugreifen (evtl über XML??) Allgemeine Java-Themen 22
C VisualVM oder Jconsole über Jolokia-Proxy Allgemeine Java-Themen 0
G USB-Pins über Java ansteuern Allgemeine Java-Themen 8
Ernesto95 Best Practice Localization über ResourceBundle Allgemeine Java-Themen 6
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
C Auslesen auslösen über Button-Click Allgemeine Java-Themen 8
M Fragen beantworten über Textfeldeingabe Allgemeine Java-Themen 5
AssELAss Best Practice Checksumme über jede Spalte zweier Tabellen und vergleichen Allgemeine Java-Themen 3
T Strings über Bluetooth zwischen PC,µc oder Samrtphone senden und empfangen Allgemeine Java-Themen 0
F Try/catch über ganze Klasse Allgemeine Java-Themen 9
kodela Eigenartige Datumsberechnung über GregorianCalendar Allgemeine Java-Themen 15
HarleyDavidson Best Practice Integer-Zahlenfolge über mehrere Programmstarts Allgemeine Java-Themen 7
T .jar über cmd ausführen (später dann batch) Allgemeine Java-Themen 6
F In OSX: Java-Programm über URI-Scheme aufrufen mit Parameter? Allgemeine Java-Themen 0
C Input/Output Zip Files über Socket senden und empfangen Allgemeine Java-Themen 6
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
C .jar File lässt sich nur über Konsole öffnen Allgemeine Java-Themen 1
L Videodateien über Java öffnen unabhängig vom Format Allgemeine Java-Themen 4
Thallius Hash über serialisiertes Objekt? Allgemeine Java-Themen 3
A Threads Lock über mehrere Abschnitte in verschiedenen Methoden Allgemeine Java-Themen 5
T Daten über port abfangen mit proxy server Allgemeine Java-Themen 12
M Eingabe von Arrays geht über gewünschte Anzahl hinaus Allgemeine Java-Themen 2
L Prüfen, ob Programm über 32bit oder 64bit Java ausgeführt wird Allgemeine Java-Themen 4
F Content-Disposition ermitteln über URL Allgemeine Java-Themen 2
ARadauer Checksumme über BigDecimal Werte Allgemeine Java-Themen 11
A Class Datei aus Verzeichnis über URLClassLoader laden Allgemeine Java-Themen 2
G Darstellung von Ergebnissen einer Dokumentensuche über eine JTable Allgemeine Java-Themen 19
S VLC + Lied über Java starten Allgemeine Java-Themen 17
M HTML-Code von Webseite über Browser oder Console auslesen?? Allgemeine Java-Themen 5
A Sinuston ausgeben und über Mikro Amplitude messen – machbar? Allgemeine Java-Themen 6
R Java-Progamm über Icon starten unter Windows Allgemeine Java-Themen 9
C Daten über URL an PHP verschicken Allgemeine Java-Themen 4
O Fragen über Fragen - Bei Änderung XML-Datei -> Anpassung GUI Allgemeine Java-Themen 7
aze Jar ausführen über Runtime.execute funktioniert nicht Allgemeine Java-Themen 4
S NoSuchMethodError beim Ausführen einer C Methode über JNI Allgemeine Java-Themen 5
H OOP Daten über TCP Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben