Burada yeni bir kullanıcı beni affet. Ben çalışırken çocuk sınıf çalışmalarındaTepsi simgesini kullanarak alt sınıfın üst sınıf yöntemini çağıramazsınız
public class Tray extends Home {
static TrayIcon trayIcon;
private static void ShowTrayIcon(String status) {
if (!SystemTray.isSupported()) {
System.out.println("Tray not supported");
System.exit(0);
return;
}
final PopupMenu popup = new PopupMenu();
final SystemTray tray = SystemTray.getSystemTray();
trayIcon = new TrayIcon(CreateIcon("/Images/off.png", "desc"));
MenuItem StartItem = new MenuItem("Start");
popup.add(StartItem);
trayIcon.setPopupMenu(popup);
// open from tray
StartItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
start();
}
});
try {
tray.add(trayIcon);
} catch (AWTException e) {
}
}
protected static Image CreateIcon(String path, String desc) {
URL ImageURL = Tray.class.getResource(path);
if (ImageURL == null) {
System.err.println("Resource not found: " + path);
return null;
} else {
// System.err.println("Resource found: " + path);
return (new ImageIcon(ImageURL, desc)).getImage();
}
}
public void start() {
super.start();
}
}
start() yöntemi, ancak:
Ebeveyn/ana/JFrame:
public class Home extends javax.swing.JFrame {
public Home() {
initComponents();
setIcon("icon"); // set the taskbar icon
}
public static void main(String args[]) {
// main code here, including tray initialization
new Home().setVisible(true);
}
public void start() {
// code here
}
}
Çocuk sınıfı
Bu
benim kodudur Bunu trayicon'un actionlistener'ından çağırmak için, "statik olmayan yöntem start() 'ın statik içerikten referans alınamadığını" söylemeye devam ediyor.actionlistener yönteminde super.start() kullanılarak denendi, ancak bu da çalışmıyor.
Yapmaya çalışıyorum; Ev sınıfı benim JFrame ve ana sınıfım, benim tepsi ikonlarımı idare eden başka bir sınıfım var ve tablonun içinde bazı metodları çağrıldığında ana sınıftan bazı yöntemleri çağırıyor.
Herhangi bir yardım için teşekkür ederiz. Eğer yanılmıyorsam