View Full Version : [JAVA] textfield trasparente
pumppkin
02-02-2007, 10:43
Ciao, è possibile fare un frame con un pannello all'interno e dentro il pannello una textfield il tutto trasparente?...praticamente mi si deve vedere solo il testo...
yorkeiser
02-02-2007, 10:54
Devi inserirci del testo da tastiera ? Altrimenti ti basta una label
Ciao, è possibile fare un frame con un pannello all'interno e dentro il pannello una textfield il tutto trasparente?...praticamente mi si deve vedere solo il testo...Se il tuo interesse è rimuovere il bordo 3d del field, prova con:
field.setBorder (BorderFactory.createEmptyBorder());
pumppkin
02-02-2007, 11:12
il bordo trasparente non mi serve a molto....a me serve che lo sfondo della textfield sia trasparente...cioè, se apro la textfield sotto un disegno deve sembrare di poter scrivere sul disegno...
il bordo trasparente non mi serve a molto....a me serve che lo sfondo della textfield sia trasparente...cioè, se apro la textfield sotto un disegno deve sembrare di poter scrivere sul disegno...Prova:
field.setOpaque (false);
pumppkin
02-02-2007, 11:43
già fatto...il problema è che la textfield è inserita in un JPanel che fa da contenitore di un JFrame...
già fatto...il problema è che la textfield è inserita in un JPanel che fa da contenitore di un JFrame...Beh, allora fai un setOpaque(false) pure sul JPanel.
pumppkin
04-02-2007, 16:53
non va....non capisco perchè....se uno setta sia il JPanel che la textField con setOpaque(false) mi viene visualizzata la textfield che non è trasparente...misteri di java...penso che rinuncerò a farla trasparente...
non va....non capisco perchè....se uno setta sia il JPanel che la textField con setOpaque(false) mi viene visualizzata la textfield che non è trasparente...misteri di java...penso che rinuncerò a farla trasparente...Guarda ... io ho fatto questa prova molto semplice:
import java.awt.*;
import javax.swing.*;
public class TestFrame extends JFrame
{
public TestFrame ()
{
super ("Test Frame");
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setSize (300, 300);
setLayout (null);
Container c = getContentPane ();
c.setBackground (new Color (255, 255, 0));
JPanel panel = new JPanel (new BorderLayout ());
panel.setBounds (50, 50, 100, 100);
panel.setOpaque (false);
JTextField field = new JTextField (10);
field.setOpaque (false);
panel.add (field, BorderLayout.NORTH);
add (panel);
}
public static void main (String[] args)
{
SwingUtilities.invokeLater (new Runnable()
{
public void run ()
{
TestFrame f = new TestFrame ();
f.setVisible (true);
}
});
}
}Il content-pane del JFrame l'ho fatto giallo, il panel l'ho reso trasparente e così pure ho messo trasparente il text field che ho inserito nel panel.
Risultato: lo sfondo del text field è giallo. ;)
pumppkin
05-02-2007, 12:16
il problema credo di averlo capito...praticamente io sto lavorando su un'applet e dopo aver cliccato su un punto che voglio io mi spunta il mio JFrame con un JPanel e una textField all'interno....se la textfield fosse trasparente mi si dovrebbe vedere il contenuto dell'applet...purtroppo questo non succede...
il problema credo di averlo capito...praticamente io sto lavorando su un'applet e dopo aver cliccato su un punto che voglio io mi spunta il mio JFrame con un JPanel e una textField all'interno....se la textfield fosse trasparente mi si dovrebbe vedere il contenuto dell'applet...purtroppo questo non succede...No alt! Allora stai parlando di rendere "trasparente" la finestra principale, in modo che si possa vedere il contenuto di altre finestre "sotto" quella.
Sui sistemi Windows è possibile, usando le API Win32, realizzare finestre "bucate" o "semi-trasparenti". Ma in Java non credo che si possa fare (se non, forse, usando librerie apposite o comunque sfruttando JNI).
Comunque, per documentarti meglio, segui <questa> (http://www.google.it/search?hl=it&q=java+transparent+window&btnG=Cerca&meta=) ricerca su Google, che dovrebbe fornirti maggiori informazioni circa la questione della "trasparenza". Vedi in particolare il primo risultato "ONJava.com -- Hacking Swing: Translucent Windows".
pumppkin
05-02-2007, 13:47
probabilmente hai ragione...in java non si può fare...una via percorribile cmq dovrebbe essere quella di utilizzare l'oggetto Robot e fargli catturare l'immagine sottostante...cmq....grazie del tuo aiuto....
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.