蘇州培訓網(wǎng) > 蘇州JAVA培訓機構 > 蘇州其然軟件開發(fā)培訓
首頁 培訓網(wǎng) 最新資訊 熱門問答

蘇州其然軟件開發(fā)培訓

免費試聽

您當前的位置: 蘇州IT認證培訓 > 蘇州JAVA培訓 > 常熟java程序員培訓

常熟java程序員培訓_JAVA培訓

¥詳詢

班制:周末班

蘇州其然軟件開發(fā)
上課(咨詢)地址:蘇州市昆山市震川西路111號名仕大廈
報名咨詢 預約試聽
課程介紹
常熟java程序員培訓學校
一個合格的未來 Java工程師

常熟java程序員培訓學校

常熟java程序員培訓學校

Java到 什么程度才能就業(yè)?

常熟java程序員培訓學校

多年Java開發(fā)從業(yè)者:首先,這個問題主要問:自學Java編程技術,如果才 能找到一份Java編程的工作。按照現(xiàn)在的招聘標準來看,無論你去哪個公司面試,你只需要滿足他們公司的需求就可以。

找到一份Java編程工作需要掌握的內(nèi)容如下 :

首先是Javase作為Java**基本的學習 內(nèi)容,不在多說。

然后是掌握Java的基本原理,因為做Java 編程開發(fā)必須學會Java,用到Java非常多,但是現(xiàn)在很多公司是不用去寫原生的Java,但是如果你想成為一個厲害的Java開發(fā)者,Java必須從理論到實 際操作中都要非常得心應手。

現(xiàn)在公司是必須要求會用框架的,所以取代Java的就是jQuery,這是一個非 常簡易的框架,學jQuery的時候你就會覺得它比Java好用的多。所以jQuery是你必須掌握的。

還有必須學一些框架,比如SpringMVC、Spring、Mybatis、Struts、Hibernate等等,這些就會難理解一些,但是公司是需要要求你會框架的,目前國內(nèi)的公司應用SSH比 較多,建議至少學三個框架,這是找到工作的基本需求。

數(shù)據(jù)庫技術是Java工作者必須掌握的技能常用就是Mysql。

Javaweb的內(nèi)容還有html、css、jsp、Servlet等技術,這些都是現(xiàn)在找Java開發(fā)必須掌握的東西。

以上就是粗略的必須掌握的技術,如果你想找到一份Java開發(fā)的工作,上述 相關技術必須熟練掌握并且應用到項目中。

Java課程介紹


常熟java程序員培訓學校


Java企 業(yè)級應用

“就業(yè)班”

一階段 Java語言核心

第二階段 數(shù)據(jù)庫及Web前端技術

第三階段 Java Web開發(fā)及服務端 框架

第四階段 綜合項目實踐


Java課程介紹 

常熟java程序員培訓學校

Java企業(yè)級應用

“就業(yè)班”

一階段 Java語言核心

二階段 數(shù)據(jù)庫及Web前端技術

三階段 Java Web開發(fā)及服務端框架

四階段 綜合項目實踐

Java互聯(lián)網(wǎng)開發(fā)

“培優(yōu)班”

一階段 Java語言核心

二階段 Java Web服務端技術

三階段 Java Web框架及互聯(lián)網(wǎng)架構

四階段 Java互聯(lián)網(wǎng)架構

職場華麗轉(zhuǎn)身

“才高班”

大數(shù)據(jù) 互聯(lián)網(wǎng)大牛班

6大實訓項目

“愛逛網(wǎng)”電商后端數(shù)據(jù)平臺

培訓經(jīng)驗=就業(yè)經(jīng)驗

>Java互聯(lián)網(wǎng)開發(fā)


“培優(yōu)班”

一階段 Java語言核心

第二階段 Java Web服務端技術

第三階段 Java Web框架及互聯(lián)網(wǎng)架構

第四階段 Java互聯(lián)網(wǎng)架構


職場華麗轉(zhuǎn)身

“才高班”

大數(shù)據(jù) 互聯(lián)網(wǎng)大牛班

6大實訓項目

“愛逛網(wǎng)”電商后端數(shù)據(jù)平臺

培訓經(jīng)驗=就業(yè)經(jīng)驗


在windows上創(chuàng)建完美的不規(guī)則窗口


>

在windows上創(chuàng)建完美的不規(guī)則窗口

不規(guī)則窗口方法簡介

windows上的窗口絕大多數(shù)是方形的,但是偶爾也會有一些其他形狀的窗口,如圓形甚至不規(guī)則形狀。這些不常見的窗口是如何做出來的呢? 有兩種方法可以創(chuàng)建不規(guī)則窗口 1、windows在很早的時代就支持不規(guī)則形狀的窗口了。windows提供了SetWindowRgn 函數(shù)來設置窗口的區(qū)域,還提供了一些函數(shù)來創(chuàng)建橢圓、圓角矩形區(qū)域,還可以自己繪制區(qū)域,但是這種方法有個缺陷,曲線的邊緣有嚴重的鋸齒。 2、使用windows2000以后提供的透明窗口方法來創(chuàng)建不規(guī)則形狀的窗口。當透明窗口的透明部分的透明度為0的時候次部分就會完全透明,鼠標也可以穿透。所以只要制造出有不規(guī)則的完全透明區(qū)域的窗口后,就可以形成不規(guī)則窗口。 而且可以**邊緣抗鋸齒來實現(xiàn)平滑的窗口邊緣,消除鋸齒。 本文主要講的就是第二種方法。

透明窗口API詳解

之前已經(jīng)有一篇文章介紹了簡單的透明窗口使用vc 創(chuàng)建windows透明窗口,一些基礎內(nèi)容就不在贅述,請自行閱讀。 此次主要用到上一篇文章中沒有詳細說明的UpdateLayeredWindow函數(shù),UpdateLayeredWindow函數(shù)的透明和其他的透明方式不太一樣,一旦使用UpdateLayeredWindow函數(shù)就不能再使用其他的透明函數(shù), 而且窗口的繪制也完全被UpdateLayeredWindow接管,此時正常的繪圖都不再生效,必須**UpdateLayeredWindow來刷新窗口的界面。 要使用UpdateLayeredWindow刷新窗口,首先要建立一個內(nèi)存dc,然后在dc上畫圖,在**UpdateLayeredWindowdc上的內(nèi)容根據(jù)參數(shù)做透明處理然后刷新界面。

BOOL WINAPI UpdateLayeredWindow( _In_ HWND hwnd, _In_opt_ HDC hdcDst, _In_opt_ POINT *PPTDst, _In_opt_ SIZE *psize, _In_opt_ HDC hdcSrc, _In_opt_ POINT *pptSrc, _In_ COLORREF crKey, _In_opt_ BLENDFUNCTION *pblend, _In_ DWord dwFlags );

UpdateLayeredWindow有9個參數(shù)。 **個參數(shù)是要刷新的窗口句柄,第二個是要刷新的窗口的 dc,這個參數(shù)通??梢詡?code>NULL,會自動從**個參數(shù)的窗口句柄代表的窗口中去獲取。 第三個參數(shù)是你要刷新的區(qū)域的左上坐標點,如果是全屏也可以傳NULL,第四個參數(shù)是刷新區(qū)域的長寬,不能傳NULL。 第五個參數(shù)就是畫好圖的內(nèi)存dc了,第六個參數(shù)是內(nèi)存dc上刷新過去的區(qū)域的左上坐標點。 第七個參數(shù)和第八個參數(shù)就是控制透明處理的參數(shù),第七個參數(shù)設置透明色,也就是這種顏色的區(qū)域全部透明,第八個參數(shù)是設置整體透明度。 第九個參數(shù)控制是第七個參數(shù)還是第八個參數(shù)生效或者都生效。 此處要說明一下第八個參數(shù)設置的整體透明度,他只是在原有的顏色上按照參數(shù)里的比例做透明處理,如果內(nèi)存dc里的一塊區(qū)域顏色本身就是全透明的,那么無論怎么設置參數(shù)這里依然是全透明的。

制造透明區(qū)域

使用透明窗口來制造不規(guī)則窗口的關鍵就在于怎樣制造出包含透明區(qū)域的內(nèi)存dc來。

外部作圖

眾所周知,png是支持透明通道的一種圖片格式,所以只要提前做好png透明圖片,然后運行時加載到內(nèi)存dc上就行了,是不是簡單爆了。

實時繪圖

如果能用圖片那是**好啦,但是有時候如果窗口的形狀要經(jīng)常變化而且形態(tài)非常多的話,就不能**外部圖片了。只能在內(nèi)存中畫出dc的圖來。 gdi 中的顏色支持了透明色,但是這種透明色指的是畫刷畫圖的時候和背景色做透明,**終畫在dc上還是不透明的,并不能達到我們要的效果。那么怎么辦呢?只能使出終極辦法: 直接修改內(nèi)存中的顏色數(shù)據(jù)。也就是將要透明的區(qū)域先用一種特別的顏色填充好,然后遍歷內(nèi)存中的顏色數(shù)據(jù),將這個顏色的內(nèi)存數(shù)據(jù)強行修改為完全透明-——將ARGB的代表A通道的字節(jié)置零。 由于內(nèi)存dc并不支持遍歷內(nèi)存數(shù)據(jù),所以一般是建立一個位圖,然后在這個位圖上畫圖標記處需要透明的位置,**后遍歷位圖內(nèi)存,將需要透明的位置全部摳掉。托cpu進步的福,我摳一副1080p的圖瞬間就可以完成。然后把位圖畫到dc上去。 這里有一個小問題,因為位圖中有透明顏色,上次在dc畫圖的時候這部分會遺留下來干擾到下次繪圖,所以要每次重畫之前把dc內(nèi)容用其他顏色給填掉。 **后就是鋸齒的問題了。如果要抗鋸齒的話就要再做一個特殊處理,首先得明白抗鋸齒的原理,可以Jan之前我寫過的gdi 的畫圖抗鋸齒原理。 用gdi 畫出抗鋸齒的圖后,然后在遍歷的時候?qū)ふ夷切┯蓛煞N顏色混合成的顏色,然后根據(jù)混合的比例相應的轉(zhuǎn)換成半透明度設置到這個像素點。通常我用白色和黑色做前景色和背景色,這樣混合變成灰色,灰色的rgb值除以白色rgb值的比例就是半透明度。 **后將這樣一幅位圖畫到dc上,用UpdateLayeredWindow函數(shù)刷新到窗口上就會形成不規(guī)則的窗口了。

代碼示例

畫出要被扣掉的關鍵色區(qū)域位圖的代碼:

void SpotlightWindow::DrawMaskImage(Bitmap * pImage) { Graphics graphics(pImage); graphics.FillRectangle(m_pBlackBrush, 0, 0, m_windowRect.Width(), m_windowRect.Height()); graphics.SetSmoothingMode(Gdiplus::SmoothingMode::SmoothingModeAntiAlias); graphics.FillEllipse(m_pKeyBrush, m_ellipseRect.left, m_ellipseRect.top, m_ellipseRect.Width(), m_ellipseRect.Height()); graphics.Flush(Gdiplus::FlushIntentionSync); }

遍歷摳掉透明區(qū)域并對邊緣做半透明處理的代碼:

void SpotlightWindow::MakeTransparentImage(Bitmap * pImage) { Gdiplus::Rect rect(0, 0, pImage->GetWidth(), pImage->GetHeight()); Gdiplus::BitmapData bmpData; pImage->LockBits(&rect, Gdiplus::ImageLockModeWrite | Gdiplus::ImageLockModeRead, PixelFormat32bppARGB, &bmpData); int width = pImage->GetWidth(); int height = pImage->GetHeight(); int stride = bmpData.Stride; unsigned int *pData = reinterPRet_cast<unsigned int *>(bmpData.Scan0); for (int y = 0; y < height; y ) { for (int x = 0; x < width; x ) { unsigned int color = *pData; if (color == WHITE_COLOR) { *pData = TRANSPARENCY_WHITE_COLOR;//設為透明色 } else if (color != BLACK_COLOR) { *pData = TransportTransparentColor(color);//根據(jù)計算結(jié)果設為把半透明顏色 } pData; } } pImage->UnlockBits(&bmpData); }

計算半透明的代碼:

unsigned int SpotlightWindow::TransportTransparentColor(unsigned int color) { //像素顏色數(shù)據(jù) unsigned char * pArgb = reinterpret_cast<unsigned char *>(&color); //換算出的透明度 unsigned char transparency = MAX_COLOR-*pArgb; //新的像素顏色 unsigned int transparencyColor = BLACK_COLOR; pArgb = reinterpret_cast<unsigned char *>(&transparencyColor); //設置新的像素顏色的透明度 pArgb[TRANSPARENCY_INDEX] = transparency; return transparencyColor; }

將透明圖片畫到dc上并刷新到窗口上的代碼:

void SpotlightWindow::Paint(Gdiplus::Bitmap * pImage) { HBITMAP old = SelectBitmap(m_memoryDC, m_memoryBitmap); FillRect(m_memoryDC, m_windowRect, m_backgroundBrush); Graphics graphics(m_memoryDC); graphics.DrawImage(pImage, 0, 0, m_windowRect.Width(), m_windowRect.Height()); CSize size(m_windowRect.Width(), m_windowRect.Height()); CPoint point(0, 0); UpdateLayeredWindow(m_mainWindow, NULL, NULL,&size, m_memoryDC, &point, 0, &m_blendFunc32bpp, ULW_ALPHA); SelectBitmap(m_memoryDC, old); }


相關推薦:


蘇州JAVA培訓   蘇州JAVA培訓班   蘇州JAVA培訓機構

體驗課預約試聽

倒計時

12:00:00

課程熱線:

在線咨詢

客服在線時間:早上9點~下午6點,其他時間請在線預約報名或留言,謝謝!

蘇州JAVA

免費體驗課開班倒計時

11: 41: 09

稍后會有專業(yè)老師給您回電,請保持電話暢通

咨詢電話:

選課

推薦機構 全國分站 更多課程

本周僅剩 個試聽名額

請鍵入信息,稍后系統(tǒng)將會把領獎短信發(fā)至您的手機

申請試聽名額

已有10254人申請免費試聽

01電話咨詢 |

QQ:
加盟合作:0755-83654572