如何用Java实现多个图层的切换? 如何用Java实现多个图层的切换?就像pohotshop中的多个图层,在右边的图层切换工具上点不同图层,显示区域就会显示相应层的图象。 现在我要用Java做这个东西,各位给点思路!!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用层来实现JLayeredPane lp = frame.getLayeredPane(); 可以考虑每个图层都用一个BufferedImage表示,显示哪个图层就把哪个BufferedImage画在画布上,合成的时候按照不同的透明度把他们合成一个BufferedImage。 具体就是:用一个图形链表LinkedList来存放所画的图形然后按照从头到尾的顺序paint就可以了后画的自然就覆盖了先画的了 你可以参考我的一段代码: private void upActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_upActionPerformed// TODO 将在此处添加您的处理代码: if (currentFrame != null && currentFrame.currentShape != null) { JShape s = currentFrame.currentShape; int ord = s.getOrder(); if (ord == currentFrame.shapeList.size()) { JOptionPane.showConfirmDialog(this, "已经是最上层!", "提示", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE); }//如果已经是最上层 else { currentFrame.shapeList.remove(s); currentFrame.shapeList.add(ord, s);//移动图形 /*重新设置层次值*/ for (int i = ord - 1; i < currentFrame.shapeList.size(); i++) { s = currentFrame.shapeList.get(i); s.setOrder(i + 1); } currentFrame.repaint(); } } else { JOptionPane.showConfirmDialog(this, "有且仅有一个图形可以移动!", "错误", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_upActionPerformed 关于JTextField的值在其他类中使用 netbeans界面设计问题 请教:hello world程序怎么写啊? 请问jvm包含在jdk中吗? 一个String 怎么样判断他只有数字,运算符和相应的A,B,C,D,E字符 其他都能存在 关于时间片与线程问题,请解答... JAVA帮助文档 怎么招聘.net的跑到java这里来了,斑竹快删除他们.Java与.net势不两立.干掉微软 Xerces ,Xalan这两个词该分别怎么读: 如何判断 字符串的编码方式 常用Java程序开发包API参考 用Eclipse3.1.2+tomcat4.1+lomboz写jsp时的问题!
JLayeredPane lp = frame.getLayeredPane();
显示哪个图层就把哪个BufferedImage画在画布上,
合成的时候按照不同的透明度把他们合成一个BufferedImage。
用一个图形链表LinkedList来存放所画的图形
然后按照从头到尾的顺序paint就可以了
后画的自然就覆盖了先画的了
private void upActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_upActionPerformed
// TODO 将在此处添加您的处理代码:
if (currentFrame != null && currentFrame.currentShape != null) {
JShape s = currentFrame.currentShape;
int ord = s.getOrder();
if (ord == currentFrame.shapeList.size()) {
JOptionPane.showConfirmDialog(this, "已经是最上层!", "提示",
JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);
}//如果已经是最上层
else {
currentFrame.shapeList.remove(s);
currentFrame.shapeList.add(ord, s);//移动图形
/*重新设置层次值*/
for (int i = ord - 1; i < currentFrame.shapeList.size(); i++) {
s = currentFrame.shapeList.get(i);
s.setOrder(i + 1);
}
currentFrame.repaint();
}
}
else {
JOptionPane.showConfirmDialog(this, "有且仅有一个图形可以移动!", "错误",
JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
}
}//GEN-LAST:event_upActionPerformed