PDA

View Full Version : سوال: minimize to tray + اضافه کردن دکمه کنار دکمه Clos



spiderman200700
یک شنبه 13 شهریور 1390, 01:19 صبح
درود بر همگی.
دوتا سوال دارم که شاید سوال خیلی ها باشه.
1-چطور میشه یه پنجره رو طوری minimize کرد که بره کنار ساعت ویندوز و از taskbar محو بشه.
2-چطور میشه کنار دکمه های پیش فرض هر پنجره ( یعنی Clos و maximize و minimize ) یه دکمه add کرد.
ممنون.

L u k e
یک شنبه 13 شهریور 1390, 10:02 صبح
جستجو کن JtrayIcon به مرادت می رسی

spiderman200700
دوشنبه 14 شهریور 1390, 00:56 صبح
جستجو کن JtrayIcon به مرادت می رسی

ممنونم ازتون.
جواب سوال اولم رو گرفتم.
اینم یه برنامه کامل از خودم ، که یه icon در Tray Bar قرار میده.با راست کلیک روی این icon یه منو باز میشه که یه Item داره.با کلیک روی این Item پنجره بسته میشه.


import java.awt.AWTException;
import java.awt.Image;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;

public class WindowTrayIcon extends JFrame {

private JMenuItem item = null;
private Image image = Toolkit.getDefaultToolkit().getImage("traybaricon.png");
private TrayIcon trayIcon = null;
private JPopupMenu popupMenu = null;
private SystemTray tray = null;

public WindowTrayIcon() {
super("Window Tray Icon");
setSize(400, 300);
setDefaultCloseOperation(HIDE_ON_CLOSE);


addMouseListener(new MouseAdapter() {

@Override
public void mouseClicked(MouseEvent e) {
if (e.getButton() == 3) {
popupMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
});

tray = SystemTray.getSystemTray();

item = new JMenuItem("clos");
item.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
System.exit(1);
}
});

popupMenu = new JPopupMenu();
popupMenu.add(item);


trayIcon = new TrayIcon(image, "TryIcon Demo");
trayIcon.setImageAutoSize(true);
trayIcon.addMouseListener(new MouseAdapter() {

@Override
public void mouseClicked(MouseEvent e) {
if (e.getButton() == 3) {
popupMenu.show(e.getComponent(), e.getX(), e.getY() - 20);
}
}
});

trayIcon.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
setVisible(true);
}
});

try {
tray.add(trayIcon);
} catch (AWTException e) {
System.err.println("TrayIcon could not be added.");
}
setVisible(true);
}

public static void main(String[] a) throws Exception {
new WindowTrayIcon();
}
}

spiderman200700
دوشنبه 14 شهریور 1390, 01:07 صبح
از دوستان اگر کسی هست که جواب سوال دوم منو میدونه،لطفا کمکم کنه.

سوال دومم اینه:
چطور میشه کنار دکمه های پیش فرض هر پنجره ( یعنی Clos و maximize و minimize ) یه دکمه add کرد.
ممنون.

L u k e
دوشنبه 14 شهریور 1390, 09:54 صبح
فکر نمی کنم کار آسونی باشه
من که تا حالا از این کارا نکردم

spiderman200700
دوشنبه 14 شهریور 1390, 21:00 عصر
کس دیگه ای هست که جوابمو بده.
در این مورد هر کی هر چقدر اطلاعات داره لطفا اینجا قرار بده.
منتظر پست هاتون هستم.

saeedIRHA
سه شنبه 15 شهریور 1390, 10:28 صبح
فکر نمی کنم کار آسونی باشه
من که تا حالا از این کارا نکردم

لزومی نداره پست بدی وقتی‌ که نمی‌دونی؛
این کار امکان پذیر نیست مگر اینکه از JNI استفاده کنی‌ یا border Frame ت رو حذف کنی‌ و border که خودت میخواهی‌ رو رو frame ت بذری:


public class MyWindow extends Window{
public MyWindow(){
super(null); // creates a window with no Frame as owner
setBounds(x, y, width, height);
setVisible(true);
}
}

//in your static void main(String args[]) you creat a new MyWindow as usual!
MyWindow window = new MyWindow();

spiderman200700
سه شنبه 15 شهریور 1390, 21:18 عصر
لزومی نداره پست بدی وقتی‌ که نمی‌دونی؛
این کار امکان پذیر نیست مگر اینکه از JNI استفاده کنی‌ یا border Frame ت رو حذف کنی‌ و border که خودت میخواهی‌ رو رو frame ت بذری:


public class MyWindow extends Window{
public MyWindow(){
super(null); // creates a window with no Frame as owner
setBounds(x, y, width, height);
setVisible(true);
}
}

//in your static void main(String args[]) you creat a new MyWindow as usual!
MyWindow window = new MyWindow();



میدونم که با حذف border Frame میشه.
ولی من برنامه ای رو دیدم که بدون این کار یه دکمه add کرده بود.
اینم عکس برنامه.بالا ،سمت راست رو ملاحظه کنید:
http://www.fjsoft.at/Bilder/gallery/mpe-01.jpg

یعنی واقعا توی جاوا که اینقدر قدرتمنده ،نمیشه چنین کاری کرد.
تروخدا یکی کمک کنه.خیلی لازمش دارم.
بازم منتظر مییمونم.
[/LIST]

spiderman200700
چهارشنبه 16 شهریور 1390, 22:14 عصر
واقعا کسی نیست که روش یا ترفندی برای انجام این کار بلد باشه؟!!
:متفکر:

spiderman200700
پنج شنبه 17 شهریور 1390, 22:20 عصر
خیلی جالبه.
فکر کنم واقعا توی جاوا نمیشه همچین کاری انجام داد.یا شایدم کسی بلد نیست چنین کاری انجام بده.
اگه کسی از دوستان فهمید که چطور همچین کاری انجام بده،لطفا یه مثال هم اینجا بذاره.
ممنون.:افسرده: