Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Image kao background

[es] :: Java :: Image kao background

[ Pregleda: 1908 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

laden
Mladen Mijatovic
Beograd

Član broj: 146405
Poruke: 33
*.dynamic.sbb.rs.



Profil

icon Image kao background27.11.2008. u 03:42 - pre 187 meseci
Postavio sam .jpg fajl kao pozadinu za formu ali sada imam problema da na tu pozadinu postavim button. Kako bi to moglo da se uradi. Ako treba kod kacim ga. Hvala svima na pomoci jednom napacenom studentu:) Valjda se vidi i po vremenu poruke:)

Evo i koda:
Code:



import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
 
public class Pozadina extends JFrame{
 private JLabel LNazivDob;
 private JTextField NazivDob;
 private JButton Sacuvaj; 
 
 public Pozadina(){
     KreirajKomponente();
     PostaviLabeluNazivDob();
     PostaviDugmeSacuvaj();
   
 }
 
 
 
  public static void main(String[] args) {
     Pozadina pd = new Pozadina();
    ImagePanel panel = new ImagePanel(new ImageIcon("C:\\mladen.jpg").getImage());
 
    JFrame frame = new JFrame();
    frame.getContentPane().add(panel);
    frame.pack();
    frame.setVisible(true);
  }
  
  void KreirajKomponente(){
      LNazivDob = new JLabel();
      //NazivDob = new JTextField();
      Sacuvaj = new JButton(); 
  }
  
  void PostaviLabeluNazivDob() {
        LNazivDob.setText("Naziv firme dobavljaca");
        getContentPane().add(LNazivDob, new AbsoluteConstraints(20, 20, -1, -1));
    }
 
 void PostaviDugmeSacuvaj() {
    Sacuvaj.setText("Sacuvaj podatke");
    Sacuvaj.setBackground(new Color(200,200,200));    
    getContentPane().add(Sacuvaj, new AbsoluteConstraints(20,50,-1,-1));
 }
 
 void PostaviPoljeNazivDob() {        
        getContentPane().add(NazivDob, new AbsoluteConstraints(20, 80, 50, 50));
 }
  
  
 
 
 
  
}
 
class ImagePanel extends JPanel {
 
  private Image img;
 
  public ImagePanel(String img) {
    this(new ImageIcon(img).getImage());
  }
 
  public ImagePanel(Image img) {
    this.img = img;
    Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
    setPreferredSize(size);
    setMinimumSize(size);
    setMaximumSize(size);
    setSize(size);
    setLayout(null);
  }
 
  public void paintComponent(Graphics g) {
    g.drawImage(img, 0, 0, null);
  }  }



[Ovu poruku je menjao laden dana 27.11.2008. u 04:53 GMT+1]
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9514
212.200.68.*



+10254 Profil

icon Re: Image kao background27.11.2008. u 08:34 - pre 187 meseci
Imaš neku klasu AbsoluteConstraints koja je, koliko vidim, iz paketa org.netbeans.lib.awtextra;
Nemam taj paket, pa ne mogu da kompajliram, i da rešim tvoj problem. Ajde probaj da napišeš kod bez te klase.

OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

laden
Mladen Mijatovic
Beograd

Član broj: 146405
Poruke: 33
*.dynamic.sbb.rs.



Profil

icon Re: Image kao background27.11.2008. u 15:38 - pre 187 meseci
Da, ali to je za sada jedina metoda koju znam za postavljanje butona, ako znas kako to drugacije uraditi, jer bas mi u AbsoluteConstraint javlja gresku:

Exception in thread "main" java.lang.IllegalArgumentException: cannot add to layout: constraint must be a string (or null)
at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:409)
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
91.143.213.*

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: Image kao background28.11.2008. u 19:13 - pre 187 meseci
Citat:
laden:
Code:


class ImagePanel extends JPanel {
 
  private Image img;
 
  public ImagePanel(String img) {
    this(new ImageIcon(img).getImage());
  }
 
  public ImagePanel(Image img) {
    this.img = img;
    Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
    setPreferredSize(size);
    setMinimumSize(size);
    setMaximumSize(size);
    setSize(size);
    setLayout(null);
  }
 
  public void paintComponent(Graphics g) {
    g.drawImage(img, 0, 0, null);
  }  }




Hmm pa ovde ce samo slika da se vidi. A za ostale komponente mozda ne bi bilo lose da se pozove super metoda. tj da code izgleda nekako ovako.

Code:

...
public void paintComponent(Graphics g) {
    g.drawImage(img, 0, 0, null);
    super.paintComponent(g);

...



Druga stvar nemoj da koristis absolute layout nikako, ali nikako. Osnova stvar je sto zelis da se komponente pozicioniraju u zavisnosti od velicine forme, a i recimo primera radi ne koriste svi iste fontove kao i ti, pa zamisli sad da neko koristi vece fontove nego ti, pa onda recimo tekst iz dugmica u tom slucaju jednostavno iskace iz samog dugmeta, a to je veoma ruzno.
 
Odgovor na temu

laden
Mladen Mijatovic
Beograd

Član broj: 146405
Poruke: 33
*.dynamic.sbb.rs.



Profil

icon Re: Image kao background02.12.2008. u 15:57 - pre 187 meseci
Znaci trebalo bi da radim bez abs layout? To je i meni bilo logicno ali ovo je projektni rad sa faksa a oni forsiraju i abs layout i constraint. Hvala vam puno na odgovorima, zaista mi rasvetljavate ovaj deo jave u kom sam abs pocetnik:) Hvala. Ako bude jos nekih pitanja nadam se da imam vasu pomoc.
 
Odgovor na temu

[es] :: Java :: Image kao background

[ Pregleda: 1908 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.