导航:首页 > 编程语言 > java图层

java图层

发布时间:2022-06-08 04:38:01

java中ModelAndView是做什么的

ModelAndView以org.springframework.ui.ModelMap的形式来保持模型数据,通过构造方法传入的或者通过实例方法添加的模型数据都将添加到这个ModelMap中。至于ModelMap中保持的模型数据将会在视图渲染阶段,由具体的View实现类来获取并使用。

我们需要为添加到ModelAndView的一组或者多组模型数据提供相应的键(Key),以便具体的View实现类可以根据这些键获取具体的模型数据,然后公开给视图模板。通常,模型中的数据对应的键需要与视图模板中的标志符相对应,如图所示:

基于JSP/JSTL模板的视图实现,通常是将模型数据通过HttpServletRequest的属性(Attribute)的形式公开给具体的模板。而像基于Velocity之类的通用模板引擎的视图实现,则会将ModelAndView中的模型数据复制到它们自己的数据获取上下文中,比如Velocity的Context。

但不管什么视图类型,对应的视图模板都将可以通过添加到ModelAndView的模型数据的键来获取模型数据,并合并到最终的视图输出结果中。

拓展资料:

ModelAndView 的构造方法有7个。但是它们都是相通的。这里使用无参构造函数来举例说明如何构造ModelAndView 实例。

ModelAndView 类别就如其名称所示,是代表了MVC Web程序中Model与View的对象,不过它只是方便您一次返回这两个对象的holder,Model与View两者仍是分离的概念。

最简单的ModelAndView是持有View的名称返回,之后View名称被view resolver,也就是实作org.springframework.web.servlet.View接口的实例解析,例如 InternalResourceView或JstlView等等。

ModelAndView(String viewName) 如果您要返回Model对象,则可以使用Map来收集这些Model对象,然后设定给ModelAndView,使用下面这个版本的 ModelAndView: ModelAndView(String viewName, Map model) Map对象中设定好key与value值。

之后可以在视图中取出,如果您只是要返回一个Model对象,则可以使用下面这个 ModelAndView版本: ModelAndView(String viewName, String modelName, Object modelObject) 借由modelName,您可以在视图中取出Model并显示。

web.servlet.View的实例,View接口如下: public interface View { public void render(Map model, HttpServletResquest resquest, HttpServletResponse response) throws ServletException, IOException; }

View的实作之前用过 org.springframework.web.servlet.view.InternalResourceView,另外也还有JstlView、 TilesView、VelocityView等等的实作,分别进行不同的表现展处理 。

ModelAndView() 这个构造方法构造出来的ModelAndView 不能直接使用,应为它没有指定view,也没有绑定对应的model对象。当然,model对象不是必须的,但是view确实必须的。 用这个构造方法构造的实例主要用来在以后往其中加view设置和model对象。

给ModelAndView 实例设置view的方法有两 个:setViewName(String viewName) 和 setView(View view)。前者是使用view name,后者是使用预先构造好的View对象。

其中前者比较常用。事实上View是一个接口,而不是一个可以构造的具体类,我们只能通过其他途径来获取 View的实例。对于view name,它既可以是jsp的名字,也可以是tiles定义的名字,取决于使用的ViewNameResolver如何理解这个view name。

如何获取View的实例以后再研究。 而对应如何给ModelAndView 实例设置model则比较复杂。有三个方法可以使用: addObject(Object modelObject) addObject(String modelName, Object modelObject) addAllObjects(Map modelMap) ModelAndView 可以接收Object类型的对象,ModelAndView 将它视为其众多model中的一个。

当使用Object类型的对象的时候,必须指定一个名字。ModelAndView 也可以接收没有明显名字的对象,原因在于ModelAndView 将调用spring自己定义的Conventions 类的.getVariableName()方法来为这个model生成一个名字。

② 【急求】Java swing 如何实现类ps的图层绘图功能

找一本书,梁勇写的计算机图形学(JAVA),JAVA2D,JAVA3D都在上面,你可以看看。主演是用Griphics2D类和Griphics3D。

③ 如何用Java将一张图片素描处理

1、打开原图素材,按Ctrl + Shift + U 去色,然后把背景图层复制一层。
2、按Ctrl + I 把背景副本反相,图层混合模式改为“颜色减淡”。
3、执行:滤镜 > 其它 > 最少值,数值为1-2像素。
4、点击图层面板下面的图层样式按钮,添加图层样式选择“混合选项”。选择混合颜色带中的灰色,按住Alt 键盘,用鼠标拖动下一层的深色滑块的右半到合适位置。
5、新建一个图层,填充白色,加上图层蒙版,用黑色画笔把人物部分擦出来。确定后合并所有图层,完成最终效果。
如果不做去色,则可得到彩色线描。

④ java 按钮安装 图层问题。。。。求高手

即使你设置了 setOpaque(true);
你上面放了按钮还是会显示出来的。

⑤ java高德地图开发如何增加图层

确定图片绘制范围以鼓浪屿地图为例,打开框选取点工具。

⑥ 如何在java中叠加图层

使用Java叠加图层:在一个图片上画另一个图片。前提图片都是透明得:public class Test { public static void main(String[] args) { try { /* 1 读取第一张图片*/ File fileOne = new File("image1.png");
BufferedImage imageFirst = ImageIO.read(fileOne);
/* 1 对第二张图片做相同的处理 */ File fileTwo = new File("image2.png");
BufferedImage imageSecond = ImageIO.read(fileTwo);
Graphics graphics = imageSecond.getGraphics();
graphics.drawImage(imageFirst,0,0,null); File outFile = new File("D:\\out.png");
ImageIO.write(imageSecond, "png", outFile);// 写图片 } catch (Exception e) {
e.printStackTrace();
}
}

⑦ java 怎么往tif文件中添加一图层

这个你得用photoshop啊

⑧ Java中JFrame设置背景图层后,出现问题

将面板的布局设置为null,一切组件靠坐标定位
背景可以自动调整大小,但你的图片需要大分辨率,不能放正好800 600的
如果想在调整窗口大小的同时,组件也自动居中,那改动就很大了
需要使用Display 和Shell 等类,不在java包中,所以我没给你改

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
public class MyFrame extends JFrame{
private static final Image image = Toolkit.getDefaultToolkit().getImage("d:\\安工.jpg");
private JLabel l1=new JLabel("账号");
private JLabel l2=new JLabel("密码");
private JTextField t1=new JTextField();
private JTextField t2=new JTextField();
private JButton b1=new JButton("确定");
private JButton b2=new JButton("取消");

private int textFieldWidth = 110;
private int textFieldHeight = 20;
// protected void paintComponent(Graphics g) {
// g.drawImage(image,0,0,getWidth(),getHeight(),this);
//g.dispose();
// }

public MyFrame() {
this.setTitle("成绩管理系统");
this.setSize(800, 600);
JPanel p = new MyPanel(image);
p.setLayout(null);
System.out.println(this.getWidth());
t1.setBounds((getWidth() - textFieldWidth)/2, (getHeight() - textFieldHeight * 3)/2, textFieldWidth, textFieldHeight);
t2.setBounds((getWidth() - textFieldWidth)/2,t1.getY() + textFieldHeight + 10, textFieldWidth, textFieldHeight);
p.add(t1);
p.add(t2);
setContentPane(p);

this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);

}
public static void main(String[] args){
MyFrame frame=new MyFrame();

}
}
class MyPanel extends JPanel{

private Image image=null;
public MyPanel(Image image){
this.image=image;
}
protected void paintComponent(Graphics g){
g.drawImage(image,0,0,this.getWidth(),this.getHeight(),this);
}

}

⑨ java开发 怎么把图层放到百度地图上

如果要在网络地图上实现一张自己自定义的地图,就需要使用网络地图自定义图层接口。实现效果如下:

但是网络地图中关于自定义图层的介绍甚少,便以此博文以记录,方便同行了解和使用。
网络地图官方文档中,关于自定义图层的介绍是这样的:
=========华丽丽的分隔线===========

自定义图层
地图坐标系
在使用自定义图层前,您需要了解网络地图的地图坐标系,网络地图坐标系涉及:
 经纬度球面坐标系统
 墨卡托平面坐标系统
 图块编号系统
经纬度是一种利用三维空间的球面来定义地球上的空间的球面坐标系,它能够标示地球上任何一个位置。通过伦敦格林尼治天文台原址的经线为0度经线,从0度经线向东、向西各分180度。赤道为0度纬线,赤道以北的纬线称为北纬、以南的称为南纬。在网络地图中,东经和北纬用正数表示,西经和南纬用负数表示。例如北京的位置大约是北纬39.9度,东经116.4度,那么用数值标示就是经度116.6,纬度39.9。
在网络地图中,习惯经度在前,纬度在后,例如:

var point = new BMap.Point(116.404, 39.915); // 创建点坐标,经度在前,纬度在后

由于网络地图是显示在平面上的,因此在地图内部系统中需要将球面坐标转换为平面坐标,这个转换过程称为投影。网络地图使用的是墨卡托投影。墨卡托平面坐标如下图所示,平面坐标与经纬度坐标系的原点是重合的。

网络地图在每一个级别将整个地图划分成若干个图块,通过编号系统将整个图块整合在一起以便显示完整的地图。当地图被拖动或者级别发生变化时,地图API将会根据平面坐标计算出当前视野内所需显示的图块的编号。网络地图图块编号规则如下图所示:

从平面坐标原点开始的右上方向的图块编号为0,0,以此类推。在最低的缩放级别(级别 1)中,整个地球由 4 张图块组成。随着级别的增长,地图所使用的图块个数也随之增多。
定义取图规则
通过TileLayer类开发者可以实现自定义图层。其中,TileLayer实例的getTilesUrl方法需要实现,用来告诉API取图规则。getTilesUrl方法的参数包括tileCoord和zoom,其中tileCoord为图块的编号信息,zoom为图块的级别,每当地图需要显示特定级别的特定位置的图块时就会自动调用此方法,并提供这两个参数。使用者需要告知API特定编号和级别所对应的图块的地址,这样API就能正常显示自定义的图层了。
添加和移除自定义图层
以下代码在每个图块的所有缩放级别上显示一个简单的透明叠加层,使用浮动红色小水滴表示图块的轮廓。

var map = new BMap.Map("l-map"); // 创建地图实例
var point = new BMap.Point(116.404, 39.915); // 创建点坐标
map.centerAndZoom(point,15); // 初始化地图,设置中心点坐标和地图级别
var tilelayer = new BMap.TileLayer(); // 创建地图层实例
tilelayer.getTilesUrl=function(){ // 设置图块路径
return "layer.gif";
};
map.addTileLayer(tilelayer); // 将图层添加到地图上

=========华丽丽的分隔线============
这里讲得让人一知半解,最主要的是,文档中并没有说明如何实现getTilesUrl方法,以及如何实现将一张自己的地图分隔成符合网络地图要求的图块。
现在记录一下我解决这个问题的过程。
首先,我先下载网络地图瓦格图片切图工具:https://github.com/jiazheng/BaiMapTileCutter
其次,找到自己的地图,导入其中进行切片,参考Sup_Heaven转的博文:http://blog.csdn.net/sup_heaven/article/details/8461586
最后将图片放入项目资源文件中,实现getTitlesUrl方法即可。
这里需要补充一下的同,Sup_Heaven转的博文中,并没有详细说明中心点和瓦格图片之间的关系,只告诉我们其然却不知其所以然。借助度娘了解。网络地图的所有瓦格图片都是256px*256px的正方形图片,其图片的位置由经纬度和放大倍数zoom决定,所以在使用工具TileCutter时,设置对的级别范围和中心点,否则会导致切出的图片与实际需要不符。如果大家在使用过程有疑问的,欢迎留言交流

⑩ java图形界面编程想要加背景图,就是处于所有图层最下面的,有没有什么示例代码

我之前写过一个这样的,可以给你参考

其中背景图是alarmImage

JLayeredPane alarmLayeredPane=new JLayeredPane();
JPanel jPanel=new JPanel(); //新建面板容器
JLabel jLabel=new JLabel(); //新建标签
jPanel.setBounds(0, -5, alarmImage.getIconWidth(), alarmImage.getIconHeight());//设置面板大小
jLabel=new JLabel(alarmImage); //创建具有指定图像的JLabel实例
jPanel.add(jLabel); //将标签加到面板容器中去
alarmLayeredPane.add(jPanel, alarmLayeredPane.DEFAULT_LAYER); //再将面板容器放到层次面板的底层,即背景图

阅读全文

与java图层相关的资料

热点内容
linuxwss 浏览:848
一个软件需要登录服务器地址 浏览:923
哪里有解压程序 浏览:299
java静态方法内存 浏览:545
我的世界ec服务器如何带vip 浏览:737
什么是由解析器域名和服务器构成 浏览:414
自动识别电影信息源码 浏览:849
柱筋箍筋加密区怎么算 浏览:48
钢筋中加密15倍是什么意思 浏览:366
esc加密算法 浏览:518
linux运行exe命令 浏览:124
一级建造师管理pdf 浏览:720
如何更改服务器登录账号 浏览:317
看pdf文件软件 浏览:183
android恢复模式 浏览:808
生命令人忧 浏览:597
魔兽搬砖怎么选择服务器 浏览:771
程序员求伯君图片 浏览:827
安卓手机如何打开mark2文件 浏览:662
红米手机解压中文解压密码 浏览:316