. 說明
B/S架構的系統,一般后臺是java語言,前臺是html+js,控件對象是在前臺加載運行,所以與后臺java語言沒有關系,調用控件函數直接使用js語言,然后js再與后臺java語言通信。
如果想要在后臺處理DWG圖紙,比如轉pdf,jpg,或提取信息,這時就需要java調用控件了,因控件提供開發API是使用COM技術封裝,所以java需要使用jacob庫來調用,java如何調用COM接口,可以百度Java COM 調用,先學習一下java如何調用COM。
2. java調用控件API流程
2.1、下載控件
在http://www.mxdraw.com/download.html下載控件最新安裝包,如下 :
下載的是一個exe程序,它是一個自解壓縮包,雙擊直接解壓,在解壓目錄下有如下文件:
管理員方式運行”RegMxDrawX.bat”注冊控件,或直接運行MxDrawx86Setup(20200624).exe程序安裝控件。
2.2、在Eclipse中使用JAVA調用
下載http://www.mxcad.net:2080/JavaCom.rar,java包,該包可以讓java調用com組件。
然后雙擊解壓,得到如下文件:
把jacob-1.17-M2-x64.dll,jacob-1.17-M2-x86.dll拷到
java/jdk/bin 目錄下,java/jre/bin目錄下,和C:/Windows/system32
新建一個JAVA工程
2.3、編寫代碼,調用控件
下面代碼,打開1.dwg圖紙,然后轉成一個jpg文件。
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class MyTest {
public static void main(String[] args) {
//com組件調用
ActiveXComponent smsg=new ActiveXComponent("MxDrawX.MxDrawService");
// 獲取Active對象
Dispatch msg=smsg.getObject();
// 調用組件方法,打開指定dwg文件
Variant v=msg.call(msg, "open", "e:/1.dwg");
System.out.println(v);
Object[] colorparams=new Object[] { 255, 255, 255 };
msg.call(msg, "SetViewColor", colorparams);
// 參數 jpg保存路徑,位圖寬度方向的像素,-1取系統默認值:1000 ,位圖寬度方向的像素,-1取系統默認值:1000
Object[] params=new Object[] { "e:/1.jpg", 600, 860 };
//將打開的dwg圖紙,保存為jpg文件.
msg.call(msg, "WriteJpg", params);
//關閉打開的dwg文件
msg.call(msg, "close");
smsg.safeRelease();
}
};
2.3、MxDrawService說明
MxDrawService是專門提供的一個,服務器后臺調用組件,它可以在不需要控件界面時,調用控件相關接口,更多該組件的函數的說明,可以參考控件安裝目錄下:MxDraw5.2Help(20200624).chm文件:
3. 技術建議
在服務器后臺自動處理DWG圖紙,比DWG圖轉pdf,jpg,圖紙剪切,等費時操作時,盡量把這塊工作寫到一個單獨的exe程序中(控制臺程序也行),然后在java服務后臺程序調用該exe進程,把要處理的圖紙通過命令行參數傳給進程,進程處理好后,把結果寫到一個約定位置的json文件,java后臺程序只需要在一個時種中每過幾秒去看一下那個json文件是否生成,得到處理結果,這樣有三個好處:費時操作不會阻塞java服務主進程,處理程序如果崩潰不會影響主進程,可以輕松做多到多進程同時處理多個圖紙。
天這篇文章我們主要來看一下表單的控件都有哪些,如何使用表單標簽,與用戶交互。
(1)網站怎樣與用戶進行交互?
答案是使用HTML表單(form)。表單是可以把瀏覽者輸入的數據傳送到服務器端,這樣服務器端程序就可以處理表單傳過來的數據。
使用語法:<form method="傳送方式" action="服務器文件"></form>
詳細講解:
1、<form> :<form>標簽是成對出現的,以<form>開始,以</form>結束。
2、action :瀏覽者輸入的數據被傳送到的地方,比如一個PHP頁面(save.php),后臺可以通過這個文件來接收前端傳過去的數據資料并進行分析處理。
3、method : 數據傳送的方式(get/post),get多用于獲取數據,post多用于提交數據(關于這一塊大家可以簡單了解一下即可,后期我們會在網站制作的時候進行講解)。
注意:所有表單控件(文本框、文本域、按鈕、單選框、復選框等)都必須放在 <form></form> 標簽之間(否則用戶輸入的信息可提交不到服務器上哦!)。
(2)表單控件介紹
1)文本輸入框、密碼輸入框
當用戶要在表單中鍵入字母、數字等內容時,就會用到文本輸入框。文本框和密碼框只有type類型的區別,其它的寫法是一樣的。
使用語法:
文本輸入框:<input type="text" name="文本名稱" value="文本內容" placeholder="文本提示信息" />
密碼輸入框:<input type="password" name="密碼名稱" value="密碼信息" placeholder="密碼提示信息" />
詳細講解:
1、type:當type="text"時,輸入框為文本輸入框,輸入的文字是可以看見的;當type="password"時, 輸入框為密碼輸入框,輸入的文字內容是無法看見的。
2、name:為文本框/密碼框命名,以備后臺程序使用。
3、value:為文本輸入框輸入的內容。
4、placeholder:當我們的value內容為空的時候顯示,用于提示輸入框輸入信息格式;
使用練習:我們創建一個表單,表單里邊包含用戶名和密碼輸入框。具體的代碼如下圖所示:
在網頁中的顯示效果如下所示:
2)多行文本輸入框
上邊文本輸入框用于輸入單行的文本內容,當用戶需要在表單中輸入大段文字時,需要用到文本輸入域。
使用語法:<textarea rows="行數" cols="列數" placeholder="多行文本提示信息" >文本</textarea>
詳細講解:
1、<textarea>標簽是成對出現的,以<textarea>開始,以</textarea>結束。
2、cols:用于控制多行輸入域的列數,rows :用于控制多行輸入域的行數。
3、placeholder:當我們的textarea內容為空的時候顯示,用于提示輸入框輸入信息格式;
使用練習:我們創建一個新的表單,表單里邊包含用戶名和密碼輸入框和用戶個人簡介多行輸入框。具體的代碼如下圖所示:
我們再網頁中的顯示效果就如下圖所示:
好了,本篇文章就先給大家介紹這兩個表單控件的語法以及使用,下篇文章我們將介紹下拉框、選擇框、多選框的語法及使用,記得要多加練習才是王道。
每日金句:把每一件簡單的事做好就是不簡單;把每一件平凡的事做好就是不平凡。喜歡我的文章的小伙伴記得關注一下哦,每天將為你更新最新知識。
最新的DevExpress WinForm版本中,開發者可以使用WinForm產品線(通過DevExpress AlertControl和ToastNotificationManager)創建兩種類型的通知/警報,最近技術團隊還推薦使用DevExpress ToastNotificationManager來顯示原生 Windows 10+ 通知。
DevExpress Universal Subscription官方最新版免費下載試用,歷史版本下載,在線文檔和幫助文件下載-慧都網
盡管自定義選項有些有限(toast 僅提供九個布局模板),但ToastNotificationManager 代表了比傳統的基于面板的AlertControl更好、更現代的替代方案。
在最新版中為AlertControl發布的HTML & CSS 模板,允許開發人員創建時尚的警告通知,同時可利用AlertControl 本身的簡單性。下圖說明了技術團隊提供的一些示例模板(查找您喜歡的模板并將其復制到項目中):
大多數通知只是一個帶有幾個文本塊、圖像和按鈕的矩形,設計這樣簡單的對象對每個人來說都應該相對容易——無論您有 HTML 和 CSS 經驗,還是開始在WinForms 應用程序中利用其潛力。 例如以下模板創建一個帶有圖標、標題、描述和“確定”按鈕的通知。
<div class="container">
<div class="popup">
<img src="${SvgImage}" class="image" />
<div class="caption">Notification Title</div>
<div class="text">This notification uses a web-inspired template.</div>
<div id="okButton" class="ok-button">OK</div>
</div>
</div>
請注意,在此示例標記中,通知標題和說明是靜態字符串。 如果您要為用戶顯示一條消息,此解決方案就可以正常工作。
當然我們的數據綁定功能提供了更大的靈活性——您可以創建一個模板并將不同的數據對象傳遞給它。 因此,您可以為多個通知消息重用一個模板。
如果您更喜歡此選項,請使用 ${Data_property_name} 占位符,如下所示:
<div class="text">${Caption}</div>
<div class="text">${Text}</div>
“Caption”和“Text”是標準占位符,可以通過 AlertControl.Show 重載直接替換:
alertControl1.Show(this, "Sample caption", "Sample notification text");
您可以添加模板設計所需的任意數量的占位符,但請記住處理 AlertControl.BeforeFormShow 事件并將數據對象傳遞給 e.HtmlPopup.DataContext 屬性。 例如,下面的代碼使用 div 元素來顯示由五個占位符組合而成的字符串:兩個用于字符串值(FullName、Ticker),兩個用于數字(Percentage、Price),一個用于自定義 Direction 枚舉值。
<div class="message-text">
${FullName} ({Ticker}) {Direction} {Percentage}%. The current price is ${Price}.
</div>
通知圖像也在運行時檢索,img 標簽使用占位符替代靜態 src 屬性值。
<img src="${StockImage}" class="message-image" />
此示例應用程序使用 StockInfo 類對象作為數據項。
public class StockInfo {
public StockInfo(string ticker, string fullName, Direction direction,
double percentage, double price, SvgImage img) {
Ticker=ticker;
FullName=fullName;
Direction=direction;
Percentage=percentage;
Price=price;
StockImage=img;
}
public string Ticker { get; set; }
public string FullName { get; set; }
public Direction Direction { get; set; }
public double Percentage { get; set; }
public double Price { get; set; }
public SvgImage StockImage { get; set; }
}
public enum Direction {
[Description("rises")]
Up,
[Description("falls")]
Down
}
當數據項的 "Price" 值在短時間內發生顯著變化時會觸發通知,相應的項目分配給 AlertControl.BeforeFormShow 事件處理程序中的 e.HtmlPopup.DataContext 屬性。
void AlertControl1_BeforeFormShow(object sender, AlertFormEventArgs e) {
// TODO: Retrieve a data item
e.HtmlPopup.DataContext=myStockInfoInstance;
}
因此,通知會從指定為 DataContext 的數據項中檢索其 ${Field_Name} 占位符的數據。 請注意,邊條的顏色會根據 "Direction" 枚舉值而變化。
DevExpress WinForm
DevExpress WinForm擁有180+組件和UI庫,能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易于使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕松勝任!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。