SWT - eine Toolbar und ein Menu - addSelectionListener

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Ich habe ein ToolItem und ein MenuItem

Code:
ToolItem toolItem=new ToolItem(toolBar, SWT.PUSH);
...
toolItem.addSelectionListener(new SelectionAdapter() {
 @Override
 public void widgetSelected(SelectionEvent e) {
 doSomething();
 }
});


MenuItem menuItem = new MenuItem (myMenu, SWT.PUSH);
menuItem.setText(toolItem.getText());
menuItem.setImage(toolItem.getImage());
menuItem.addSelectionListener(toolItem.getSelectionListener());//?
Wie kann ich das menuItem dazu bringen, den SelectionListener von toolItem zu übernehmen?
.
 
du könntest dir ne Action baun:

Code:
public class SaveDataAction extends AbstractAction {

	private static final long serialVersionUID = -7599655000856108581L;

	
	public SaveDataAction() {
		super("Speichern");
		Icon icon = new ImageIcon(getClass().getResource("/images/saveFile.png"));
		super.putValue(SMALL_ICON, icon);
		super.putValue(SHORT_DESCRIPTION, "Daten speichern");
	}//constructor
	
	
	@Override
	public void actionPerformed(ActionEvent e) {
                foo();
	}

}

und diese dann in der art verbinden
wenn du die Action disablest, dann sind beide Punkte nicht mehr anklickbar

Code:
JToolBar toolbar = new JToolBar();
toolbar.add(SaveDataAction); //nutzt nur icon, ohne text

JMenuBar menubar = new JMenuBar();
JMenu m = new JMenu("test");
		
JMenuItem mi = new JMenuItem(SaveDataAction);
mi.setIon(null); //ohne icon oder mit wenn auskommentiert
m.add(mi);

oder ne Klasse die eben als Listener fungiert ohne den Action-kram drumrum und dann gibst eben eine Referenz auf die klasse an beiden stellen an
 
also du könntest eine neue Klasse erstellen, die von dem selectionadapter erbt und da das Zeuchs reinschreiben was gemacht werden soll...

und dann in der Klasse , wo du die adapter zuordnest die neue Klasse nehmen...

Das müsste funzen, habs aber nciht getestet..

Wenn das nicht läuft kannste auch eine Methode erstellen die das bearbeitet, was gemacht werden soll und in beiden widgetselected ausführen.. dann sparste dir redundanten code..

ich kenne kenne methode, die den Selectiionadapter eines anderen Items abgreift..

metal-Tiffy (Die Ihr passwort grad nicht zur Hand hat..)
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben