package com.topthinking.exingim;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedList;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import org.jdesktop.jdic.tray.SystemTray;
import org.jdesktop.jdic.tray.TrayIcon;
import org.jvnet.substance.SubstanceImageCreator;
import org.jvnet.substance.SubstanceLookAndFeel;
import org.jvnet.substance.skin.SubstanceModerateLookAndFeel;
import org.jvnet.substance.theme.SubstanceTheme;
import org.jvnet.substance.title.TitleButtonCallback;
import org.jvnet.substance.title.TitleButtonInfo;
import com.swtdesigner.SwingResourceManager;
public class AliWangWangUI {
private JFrame frame;
private JPopupMenu menuBar;
/**
* Launch the application
* @param args
*/
public static void main(String args[]) {
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
try {
UIManager.setLookAndFeel(new SubstanceModerateLookAndFeel());
} catch (Exception e) {
System.out.println("Substance Raven Graphite failed to initialize");
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
AliWangWangUI window = new AliWangWangUI();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application
*/
public AliWangWangUI() {
createContents();
}
/**
* Initialize the contents of the frame
*/
private void createContents() {
frame = new JFrame();
frame.getContentPane().setLayout(new GridBagLayout());
frame.setIconImage(SwingResourceManager.getImage(AliWangWangUI.class, "/com/topthinking/pic/al-logo.png"));
frame.setTitle("易行 IM");
frame.setBounds(400, 40, 334, 648);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TopPanel topPanel = new TopPanel();
final GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.insets = new Insets(0, 4, 0, 0);
gridBagConstraints.anchor = GridBagConstraints.WEST;
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.ipadx = 20;
frame.getContentPane().add(topPanel, gridBagConstraints);
BodyPanel bodyPanel = new BodyPanel(frame);
final GridBagConstraints gridBagConstraints_1 = new GridBagConstraints();
gridBagConstraints_1.insets = new Insets(0, 0, 8, 0);
gridBagConstraints_1.fill = GridBagConstraints.BOTH;
gridBagConstraints_1.weighty = 1;
gridBagConstraints_1.weightx = 1;
gridBagConstraints_1.gridx = 0;
gridBagConstraints_1.gridy = 1;
gridBagConstraints_1.ipadx = -35;
gridBagConstraints_1.ipady = -25;
frame.getContentPane().add(bodyPanel, gridBagConstraints_1);
FootPanel footPanel = new FootPanel();
final GridBagConstraints gridBagConstraints_2 = new GridBagConstraints();
gridBagConstraints_2.weightx = 1;
gridBagConstraints_2.fill = GridBagConstraints.HORIZONTAL;
gridBagConstraints_2.anchor = GridBagConstraints.WEST;
gridBagConstraints_2.gridx = 0;
gridBagConstraints_2.gridy = 2;
gridBagConstraints_2.ipadx = 47;
frame.getContentPane().add(footPanel, gridBagConstraints_2);
menuBar = new JPopupMenu();
menuBar.setPopupSize(180, 400);
final JMenu personMenu = new JMenu();
personMenu.setIcon(SwingResourceManager.getIcon(AliWangWangUI.class, "/com/topthinking/pic/person.png"));
personMenu.setText("个人资料");
menuBar.add(personMenu);
final JMenu onlineStateMenu = new JMenu();
onlineStateMenu.setIcon(SwingResourceManager.getIcon(AliWangWangUI.class, "/com/topthinking/pic/state.png"));
onlineStateMenu.setText("在线状态");
menuBar.add(onlineStateMenu);
final JMenuItem freeStateItem = new JMenuItem();
freeStateItem.setIcon(SwingResourceManager.getIcon(AliWangWangUI.class, "/com/topthinking/pic/tick.png"));
freeStateItem.setText("我有空");
onlineStateMenu.add(freeStateItem);
onlineStateMenu.addSeparator();
final JMenuItem busyStateItem = new JMenuItem();
busyStateItem.setText("忙碌中");
onlineStateMenu.add(busyStateItem);
final JMenuItem notHereStateItem = new JMenuItem();
notHereStateItem.setText("不在电脑旁");
onlineStateMenu.add(notHereStateItem);
final JMenuItem phoneStateItem = new JMenuItem();
phoneStateItem.setText("接听电话中");
onlineStateMenu.add(phoneStateItem);
final JMenuItem dinnerStateItem = new JMenuItem();
dinnerStateItem.setText("外出就餐");
onlineStateMenu.add(dinnerStateItem);
onlineStateMenu.addSeparator();
final JMenuItem hideStateItem = new JMenuItem();
hideStateItem.setText("隐身");
onlineStateMenu.add(hideStateItem);
final JMenu signMenu = new JMenu();
signMenu.setIcon(SwingResourceManager.getIcon(AliWangWangUI.class, "/com/topthinking/pic/sign.png"));
signMenu.setText("个性签名");
menuBar.add(signMenu);
menuBar.addSeparator();
final JMenuItem sendItem = new JMenuItem();
sendItem.setIcon(SwingResourceManager.getIcon(AliWangWangUI.class, "/com/topthinking/pic/send.png"));
sendItem.setText("指定发送");
menuBar.add(sendItem);
final JMenu recordMenu = new JMenu();
recordMenu.setIcon(SwingResourceManager.getIcon(AliWangWangUI.class, "/com/topthinking/pic/record.png"));
recordMenu.setText("聊天记录");
menuBar.add(recordMenu);
menuBar.addSeparator();
final JMenu optionMenu = new JMenu();
optionMenu.setIcon(SwingResourceManager.getIcon(AliWangWangUI.class, "/com/topthinking/pic/option.png"));
optionMenu.setText("显示选项");
menuBar.add(optionMenu);
final JMenu systemMenu = new JMenu();
systemMenu.setIcon(SwingResourceManager.getIcon(AliWangWangUI.class, "/com/topthinking/pic/system.png"));
systemMenu.setText("系统设置");
menuBar.add(systemMenu);
final JMenu mobileMenu = new JMenu();
mobileMenu.setIcon(SwingResourceManager.getIcon(AliWangWangUI.class, "/com/topthinking/pic/mobile.png"));
mobileMenu.setText("移动旺旺");
menuBar.add(mobileMenu);
menuBar.addSeparator();
final JMenuItem pluginItem = new JMenuItem();
pluginItem.setIcon(SwingResourceManager.getIcon(AliWangWangUI.class, "/com/topthinking/pic/plagin.png"));
pluginItem.setText("插件");
menuBar.add(pluginItem);
menuBar.addSeparator();
final JMenu helpMenu = new JMenu();
helpMenu.setIcon(SwingResourceManager.getIcon(AliWangWangUI.class, "/com/topthinking/pic/help.png"));
helpMenu.setText("帮助");
menuBar.add(helpMenu);
//-------------------- 添加窗口标题栏的右边按钮 ---------------------------
TitleButtonInfo tbInfo1 = new TitleButtonInfo();
tbInfo1.setActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
menuBar.show(frame, frame.getWidth()-16*5, 27);
}
});
tbInfo1.setTooltipText("Tooltip for custom button 1");
tbInfo1.setButtonCallback(new TitleButtonCallback() {
public Icon getTitleButtonIcon(SubstanceTheme currSubstanceTheme, int iconMaxWidth, int iconMaxHeight) {
return new ImageIcon(SubstanceImageCreator
.overlayEcho(SubstanceImageCreator
.getArrow(8, 8,
SwingConstants.SOUTH,
currSubstanceTheme
),
1, 1));
}
});
java.util.List<TitleButtonInfo> tbInfoList = new LinkedList<TitleButtonInfo>();
tbInfoList.add(tbInfo1);
SubstanceLookAndFeel.setRootPaneCustomTitleButtons(
frame.getRootPane(), tbInfoList);
//加入系统托盘
// tray();
}
/**
* 添加系统托盘
*/
public void tray() {
final SystemTray tray = SystemTray.getDefaultSystemTray(); //获得操作系统托盘实例
final TrayIcon trayIcon = new TrayIcon(SwingResourceManager.getIcon(AliWangWangUI.class, "/com/topthinking/pic/al-logo.png"), "易行IM", menuBar);
trayIcon.setIconAutoSize(true);
tray.addTrayIcon(trayIcon);
}
}
- 大小: 45.9 KB
分享到:
相关推荐
在模仿阿里旺旺界面时,开发者会根据不同的区域和组件特性选择合适的布局,以便实现类似旺旺的界面排列。 3. **事件处理**: Swing采用事件监听机制来处理用户交互,例如点击按钮、输入文本等。开发者需要为组件...
本项目名为“java实现的计算器(界面程序)”,使用了Java Swing库来构建计算器的界面,并采用了GridBagLayout布局管理器来优化组件的摆放,以实现一个美观且功能齐全的计算器。 Java Swing是Java AWT(抽象窗口...
一个利用Java Swing实现可视化界面的扫雷小游戏.zip 一个利用Java Swing实现可视化界面的扫雷小游戏.zip 一个利用Java Swing实现可视化界面的扫雷小游戏.zip 一个利用Java Swing实现可视化界面的扫雷小游戏.zip 一个...
JAVA Swing提供了不同的布局管理器,如FlowLayout、BorderLayout、GridLayout等,根据需求选择合适的布局管理器可以使界面看起来更加专业和整洁。 中文注释在源码中起着关键作用,尤其是对初学者而言。它们可以帮助...
本项目"Java图形化界面实现图书管理系统"显然利用了这些技术来构建一个用于管理图书信息的应用程序。 首先,Swing是Java Foundation Classes (JFC) 的一部分,提供了大量的组件,如JFrame(窗口)、JButton(按钮)...
利用java完成图形化用户界面实现加法运算,第一个加第二个当点击等号时在第三个文本框中显示相加之和
title: Java 实现聊天室功能(全部代码,有界面) description: 该项目是一个 Java 实现的聊天室系统,支持群聊、公聊、私聊等功能,並支持刷新好友列表。使用 Swing 库来创建简单的界面,可以多人登录。 标签: ...
在源码中,`src` 目录下通常包含 Java 类文件,其中会有连接阿里云 MQTT 服务的具体实现。这些类可能包含以下关键部分: 1. **初始化 MQTT 客户端**:创建 `MqttClient` 对象,指定服务器地址(通常是阿里云 MQTT ...
java实现的图形界面UI,下拉框 和文本域包括两者之间的事件
Java 实现;了解 Java 常用的系统类;学习异常处理、线程、图形用户界面设计、 网络通信等内容。使学生的专业知识进一步完善和丰富,为将来的开发和研究工 作打下一定的基础。 1.2. 课程任务 (1) 巩固和加深学生...
window纸牌游戏,使用java实现逻辑,javafx实现界面 分为两个难度 并且实现了 悔牌功能.zip window纸牌游戏,使用java实现逻辑,javafx实现界面 分为两个难度 并且实现了 悔牌功能.zip window纸牌游戏,使用java实现...
在这个Java实现中,它包含了图形化界面,使得用户能够更直观地理解算法的运行过程。 银行家算法的核心思想是预先分配一部分资源,然后根据进程的需求动态地分配剩余的资源,同时确保系统的安全性。在Java代码实现中...
通过java数组实现了计算器的界面,可以通过自己的选择实现具体的逻辑操作
在本项目中,我们主要探讨如何使用Java编程语言来实现实时本地语音采集,并通过集成阿里云的AI语音识别服务,构建一个语音识别系统,进而实现计算机的语音控制功能。以下将详细介绍涉及的关键技术点: 1. **Java...
Java通过swing界面实现简易飞机小游戏.zipJava通过swing界面实现简易飞机小游戏.zip Java通过swing界面实现简易飞机小游戏.zipJava通过swing界面实现简易飞机小游戏.zip Java通过swing界面实现简易飞机小游戏.zip...
简单的java代码编写的登陆界面。实现对账号密码的判断。并且可以实现注册。还有登陆。适合初学者。
Java Swing 是Java编程语言中用于构建桌面应用程序用户界面的一个库,它是Java Foundation Classes (JFC) 的一部分。Swing 提供了一系列组件,如按钮、文本框、菜单等,用于创建功能丰富的图形用户界面(GUI)。在...
java怎么实现这个界面样式和差不多的功能