導航:首頁 > 編程語言 > 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圖層相關的資料

熱點內容
暴力刪除命令 瀏覽:801
qt如何編譯加快速度 瀏覽:901
php添加數據sql語句 瀏覽:717
免費的小說app有什麼 瀏覽:405
螺桿壓縮機進氣閥動畫 瀏覽:651
兩台伺服器如何做負載均衡 瀏覽:227
程序員的工資是漲的嗎 瀏覽:813
視頻存儲伺服器可以干什麼 瀏覽:463
創建文件夾安裝失敗怎麼回事 瀏覽:832
程序員高考隔了幾年 瀏覽:822
雲伺服器是哪一層 瀏覽:22
jit編譯器的jit什麼意思 瀏覽:330
我想清理手機中空白文件夾 瀏覽:976
電腦e盤文件夾刪不掉怎麼辦 瀏覽:607
外圓凹圓弧編程 瀏覽:461
html5編程題 瀏覽:839
乾燥機製冷壓縮機一開就跳動 瀏覽:388
吉林壓縮空氣流量監測 瀏覽:618
根據地址獲取經緯度php 瀏覽:12
小天才app的應用中心有什麼應用 瀏覽:770