JTextPane JPopupMenu anfügen

Status
Nicht offen für weitere Antworten.

headgrowe

Aktives Mitglied
also war schon recht auf der suche, aber das sun tutorium, hat iwie was anderes gemacht als ich mir ehooft hab....
Jpopup

ich möchte natürch verschieden viele menuitems anfügen und die namen frei wählen...
hier ein link, aus dem ich aber noch nicht ganz schlau fworden bin
Object Definitions Blog Blog Archive JTextArea with popup menu - JPopupTextArea
und es soll auch nicht einfach nur cut und copy sein...das hab ich mit "getAction(DefaultEditorKit.cutAction)" schon geschafft:applaus:

Java:
JFrame f = new JFrame();
JTextPane textpane = new JTextPane();

JPopupMenu m = new JPopupMenu();
JMenuItem i = new JMenuItem();
i.setText("Item1 mit MouseClicked");
            i.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent e) {
                        //macheEtwas();
                }
            });

 //so wie und wo muss ich jt die listener anhängen? ich brauch ja 2 einen für die maus und einen fürs item oder?

m.add(i);
textpan.add(m);

f.add(textpane)
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
 
Zuletzt bearbeitet:

headgrowe

Aktives Mitglied
ok ich habs geschafft, aber es sieht nicht we ein normal menue aus und wenn man drüberfährt ändert sich auch nicht der hintergrund...das kanns doch nicht sein...bitte um hilfe...ich will nicht mein eigenes popup menue bastern sondern einfach eins von java verwenden?! gibts nicht ein menue das einfach an der stelle der maus auftaucht und genau das macht was alle rechtsklick menues machen?

Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.ImageObserver;

import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JTextPane;

public class JPopupMenue implements MouseListener, ActionListener {
	JFrame f = new JFrame();
	JTextPane textpane = new JTextPane();
	JPopupMenu m = new JPopupMenu();
	JMenuItem[] i = new JMenuItem[6];
	int itemCount = 0;

	public JPopupMenue() {

		m.add(newItem("Item1 mit MouseClicked"));
		m.add(newItem("Item2 mit MouseClicked"));
		textpane.addMouseListener(this);
		textpane.add(m);
		f.add(textpane);
		f.setSize(200, 200);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setVisible(true);
	}

	private JMenuItem newItem(String txt) {
		i[itemCount] = new JMenuItem();
		i[itemCount].setText(txt);
		i[itemCount].setActionCommand("" + itemCount);
		i[itemCount].addActionListener(this);
		return i[itemCount++];
	}

	public static void main(String[] args) {
		JPopupMenue p = new JPopupMenue();
	}

	public void mouseReleased(MouseEvent e) {
		if (e.getButton() == 1)
			m.setVisible(false);
		else {
			m.setLocation(e.getLocationOnScreen());
			m.setVisible(true);
		}
	}

	@Override
	public void actionPerformed(ActionEvent arg0) {
		m.setVisible(false);
		System.out.println(arg0.getActionCommand());
	}

	@Override
	public void mouseClicked(MouseEvent e) {
	}

	@Override
	public void mouseEntered(MouseEvent e) {
			m.setVisible(false);

	}

	@Override
	public void mouseExited(MouseEvent e) {
	}

	@Override
	public void mousePressed(MouseEvent e) {
	}
}
 
Zuletzt bearbeitet:

KrokoDiehl

Top Contributor
JPopupMenu zeigt man mit
Code:
show(Component, int, int)
an. Die Parameter kann man quasi 1x1 aus dem MouseEvent nehmen.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben