Avatar billede funkyloonie Nybegynder
18. marts 2003 - 16:51 Der er 1 kommentar og
2 løsninger

Identificere JLabel i JPanel

Jeg har brug for hjælp til at identificere hvilken Jlabel som klikkes på i et JPanel. Desuden er det vigtigt for mig at vide om der klikkes på en JLabel, da panellet ikke er fyldt ud med JLabels men kun nogle små nogle. Der er vigtigt for mig at vide i min JComponent hvilken af JLabels'ne der klikkes på. Jeg har ikke haft succes med at placere mouselisteneren på labelen.

Håber nogen kan give et godt eksempel.
Avatar billede funkyloonie Nybegynder
18. marts 2003 - 19:04 #1
har selv fået en ide. kigger på den
Avatar billede viht Nybegynder
18. marts 2003 - 19:09 #2
Hvis du ikke har held med det, så her:
import javax.swing.*;
import javax.swing.text.*;
import java.awt.event.*;
import java.awt.*;

public class TestFrame extends JFrame {
   
    private StyledDocument document;
    private Style style;
   
    public TestFrame() {
        super("Test");
        setSize(400,400);
       
        JPanel labelPanel = new JPanel();
        JLabel label = new JLabel("Træk musen herhen!");
        label.addMouseListener(new MouseAdapter() {
            public void mouseEntered(MouseEvent event) {
                appendColor("Mus er på label", Color.red);
            }
            public void mouseExited(MouseEvent event) {
                appendColor("Mus forlader label", Color.blue);
            }
        });
        labelPanel.add(label);
        getContentPane().add(labelPanel, BorderLayout.NORTH);
       
        JTextPane pane = new JTextPane();
        document = pane.getStyledDocument();
        style = document.addStyle("Color", null);
        StyleConstants.setForeground(style, Color.red);
        pane.setEditable(false);
       
        getContentPane().add(new JScrollPane(pane), BorderLayout.CENTER);
           
        JPanel buttonPanel = new JPanel();
        JButton closeButton = new JButton("Luk");
        closeButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                System.exit(0);
            }
        });
        buttonPanel.add(closeButton);
        getContentPane().add(buttonPanel, BorderLayout.SOUTH);
       
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent event) {
                System.exit(0);
            }
        });
    }
   
    private void appendColor(String text, Color color) {
        try {
            StyleConstants.setForeground(style, color);
            document.insertString(document.getLength(), text+"\n", style);
        }
        catch(BadLocationException ble) {
            ble.printStackTrace();
        }
    }
}
class Go {
    public static void main(String[] args) {
      new TestFrame().show();
  }
}
Avatar billede funkyloonie Nybegynder
19. marts 2003 - 11:35 #3
har selv løst det, men du får lidt for hjælpen.
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