1:如何让Swing的串口程序类似于QQ一样?接受到消息的时候任务拦出现黄色的闪动?网上找了很久也没有找到合适的例子,希望大神最好能给出代码!谢谢。
2:我也不知道算不算是一个算法问题:一个界面上有N张图片,有一个初始化按钮,当我点击初始化按钮的时候,N张图片如何根据屏幕的大小,以及图片的大小、张数自动调整相应的比例及排序,使图片能够完整并全部的显示在界面上。
注:初始化的时候图片的大小也要根据具体的张数来调整图片的大小。因为初始化的时候可能有N多张图片,要全部显示在界面上,所以图片的大小也随时会变求大神。最好能给出代码,感激不尽。。!!
2:我也不知道算不算是一个算法问题:一个界面上有N张图片,有一个初始化按钮,当我点击初始化按钮的时候,N张图片如何根据屏幕的大小,以及图片的大小、张数自动调整相应的比例及排序,使图片能够完整并全部的显示在界面上。
注:初始化的时候图片的大小也要根据具体的张数来调整图片的大小。因为初始化的时候可能有N多张图片,要全部显示在界面上,所以图片的大小也随时会变求大神。最好能给出代码,感激不尽。。!!
解决方案 »
- 求助, 实现一个链表, 能正向和反向读取数据
- Windows 区域设置为中文(中国)时是对的,为英语(美国)时是乱码
- 测试Java Applet内存泄露(非开发环境)
- 经过一年半的学习积累,今天终于升星了,散分庆祝!!!!
- 请教如何调试这种Java程序
- DES算法求救!不行了
- 我的tomcat是不是没设置对?
- 有谁能详细讲一下hashcode的主要用途和具体用法啊?
- 高手不屑,菜鸟很急的问题。除了用dos命令,有更好的方式运行java吗?
- Swing窗口关闭动态效果的实现
- 进来帮帮看看,为什么在类的本身创立自己对象不可以这样用的
- 执行完查询之后是否需要显式调用PreparedStatement对象和ResultSet对象的close()方法?
闪动可能要自己做一些处理,如果是显示有消息,可以用
TrayIcon的displayMessage方法SystemTray st = SystemTray.getSystemTray();
TrayIcon ti = new TrayIcon(...);
st.add(ti);
在收到消息的时候,调用
ti.displayMessage("QQ", "xxx传来的消息", TrayIcon.MessageType.INFO);2
可以通过Image的getScaledInstance来获得缩放尺寸的实例
Image img = Toolkit.getDefaultToolkit().creatImage("xxx.gif");
img = img.getScaledInstance(缩放宽, 缩放高, Image.SCALE_SMOOTH);
根据缩放后的大小,设置位置就可以了
这个应该没有什么所谓的公式吧,应该是根据需求来决定要分成多少行多少列,使得分布最合适,可以写个方法来实现,如public class Test {
public static void main(String[] args) throws Throwable {
int imageCount = 100;
int[] result = splitImage(1024, 768, imageCount);
System.out.printf("rows=%d, columns=%d\n", result[0], result[1]);
int width = 1024 / result[1];
int height = 768 / result[0];
System.out.printf("width=%d, height=%d\n", width, height);
} public static int[] splitImage(int screenWidth, int screenHeight, int imageCount) {
int[] result = {1, 0}; //保存分割的行,列 double min = imageCount;
double w = 0, h = 0, m = 0;
for (int i=0; i<imageCount; i++) {
if (imageCount % (i+1) == 0) { //优先选择能分成m行n列的方案
h = (double)screenHeight / (i+1);
w = (double)screenWidth / (imageCount / (i+1));
m = Math.abs(h / w - 1); //优先选择分割后的图片的宽高比列最接近
if (m < min) {
result[0] = i+1;
min = m;
}
}
} result[1] = imageCount / result[0]; return result;
}
}