Avatar billede themepark Nybegynder
04. november 2005 - 18:14 Der er 5 kommentarer og
1 løsning

Et editerbart tekstfelt med billeder

Jeg er så småt ved at løbe sur i alle de muligheder der er for at vise tekst i Swing, så lige nu kan jeg ikke se skoven for bare træer. Jeg synes efterhånden at jeg har prøvet de fleste muligheder, men de mangler alle et eller andet før eller siden.

Det jeg gerne vil spørge om er hvad jeg kan bruge som tekstfelt. Det skal blot være et 1-linjes tekstfelt, som jeg kan redigere i og som også kan vise grafik (om det er Image, ImageIcon eller noget helt tredje, er ligegyldigt).

Er der nogle, der kan beskære skoven for mig og vise det rigtige træ?
Avatar billede visualdeveloper Nybegynder
04. november 2005 - 18:38 #1
prøv denne, den skulle være fin.
http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/
Avatar billede mikkelbm Nybegynder
04. november 2005 - 22:49 #2
>> visualdeveloper

Hvor i det link finder du noget der kan det der bliver spurgt om?


>> themepark

Der findes ikke en standard komponent i Java der kan det du spørger om. Muligvis kan du selv lave en, ved at nedarve fra JTextField og overskrive paint-metoden.

En anden mulighed er at du sætter setOpaque (false) på dit JTextField, og så tilføjer det til et panel med en baggrund. På den måde bliver tekstfeltet gennemsigtig og baggrunden vil kunne ses igennem.
Avatar billede mikkelbm Nybegynder
04. november 2005 - 22:51 #3
Et lille køreklart eksempel på det sidste jeg nævner:

import javax.swing.*;
import java.awt.*;

public class GraphicTextField extends JFrame
{
    public GraphicTextField ()
    {
        setSize (300, 300);
       
        ImageIcon icon = new ImageIcon ("billede.jpg");
        JLabel background = new JLabel (icon);
       
        background.setLayout(new BorderLayout());
        JTextField field = new JTextField ();
        field.setOpaque(false);
        background.add(field, BorderLayout.NORTH);
       
        this.getContentPane().add(background);
    }
   
    public static void main (String[] args)
    {
        new GraphicTextField().setVisible(true);
    }
}
Avatar billede themepark Nybegynder
05. november 2005 - 14:07 #4
Jeg må lige prøve at se om jeg kan finde ud af det med paint metoden, jeg er ikke så meget inde i at bruge den :(

Men den anden løsning virker jo fint nu, som en midlertidig løsning :) Så jeg siger tak :)
Avatar billede mikkelbm Nybegynder
05. november 2005 - 14:36 #5
Så blev der også lige tid til et eksempel på det med paint:

import javax.swing.*;
import java.awt.*;

public class GraphicTextField extends JFrame
{
    public GraphicTextField ()
    {
        setSize (300, 100);
       
        ImageIcon icon = new ImageIcon ("billede.jpg");
       
        MyGraphicTextField graphicField = new MyGraphicTextField (icon.getImage());
        JTextField normalField = new JTextField ();
       
        this.setLayout(new GridLayout(2, 1));
        this.getContentPane().add(graphicField);
        this.getContentPane().add(normalField);
    }
   
    private class MyGraphicTextField extends JTextField
    {
        private Image image;
       
        public MyGraphicTextField (Image image)
        {
            this.image = image;   
            this.setOpaque(false);
        }
       
        public void paint (Graphics g)
        {
            g.drawImage(image, 0, 0, this);
            super.paintComponent(g);   
        }
    }
   
    public static void main (String[] args)
    {
        new GraphicTextField().setVisible(true);
    }
}
Avatar billede themepark Nybegynder
05. november 2005 - 14:46 #6
He he, jamen nu er jeg bare glad for at jeg gav dig karma, for du fortjener det da i allerhøjeste grad :D Jeg siger tusind tusind tak, og iler afsted for at afprøve det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester