Tất cả các applet java ở đâu? Cài đặt một applet Java cho hệ thống trực tuyến của ngân hàng-khách hàng.

Trong bài viết, tôi sẽ cho bạn biết cách khắc phục applet lỗi Java không được tải. Trong nhiều thập kỷ, đã có một số lượng lớn các công nghệ web. Ví dụ: đèn flash được sử dụng cho các trò chơi đa phương tiện và đơn giản cho các trò chơi đa phương tiện và đơn giản và để thực hiện các yêu cầu bảo mật cao - ActiveX và Java. Nhưng nếu Microsoft ActiveX phát triển từ lâu đã được thúc đẩy trong ruồi, Java EE tiếp tục có liên quan đến nay. Và điểm không phải là không có gì xứng đáng và đơn giản hơn cho các chất tương tự người dùng cuối (họ chỉ xuất hiện vài năm trước), vấn đề là một số tổ chức đã đầu tư hàng chục và hàng trăm ngàn đô la để phát triển các ứng dụng dựa trên các công nghệ này, Và họ không thể từ chối họ. Đó là lý do tại sao, người dùng khi cố gắng nhập một dịch vụ nhất định, một thông báo có thể thấy: applet java không được tải, phải làm gì nếu bạn gặp chúng, chúng tôi chỉ xem xét dưới đây.

Một số khách hàng VTB24 sẽ cố gắng truy cập VTB24 Online, xảy ra lỗi. Nó chỉ được liên kết với thực tế là applet java không được cài đặt trong hệ thống hoặc nó bị vô hiệu hóa.

Để sửa lỗi này với tải xuống Java và đăng nhập vào bảng điều khiển tài khoản, bạn sẽ cần thực hiện một số hành động đơn giản.

Phải làm gì nếu applet java không được tải

Trước hết, phần mềm phải được cài đặt. Nếu nó được tải, nhưng không được bật, hãy tải xuống, hãy tải xuống - hãy để phiên bản mới nhất sẽ được cài đặt. Đối với điều này:

  1. Truy cập trang khởi động Java trên trang web chính thức;
  2. Tài nguyên phải xác định độc lập hệ điều hành và đề xuất một liên kết để tải xuống phiên bản phần mềm mong muốn;
  3. Nhấp vào nút "Tải xuống miễn phí Java" màu đỏ;
  4. Sau đó, quá trình khởi động sẽ ngay lập tức bắt đầu;
  5. Chạy tệp đã tải xuống và làm theo hướng dẫn;
  6. Khởi động lại trình duyệt.

Cần lưu ý rằng trong Google Chrome (bắt đầu từ phiên bản 42), applet Java không được hỗ trợ chính thức, vì tập đoàn xem xét công nghệ có liên quan lỗi thời. Do đó, để sử dụng Java để khởi động một trình duyệt web khác, chẳng hạn như Firefox.

Vì vậy, các vấn đề với Java đã không xảy ra, hãy làm theo các bước sau:

  1. Chạy Firefox (nếu thiếu, sau đó tải xuống và cài đặt nó từ trang web chính thức);
  2. Mở menu chương trình và nhấp vào "Bổ sung";
  3. Ngày xửa trên một trang thích hợp, hãy chuyển đến tab "Plugins";
  4. Đối diện điểm "mô-đun nền tảng java" sẽ có một công tắc - chuyển nó vào vị trí "Luôn bật" (nếu nó đã được bật, không làm gì);
  5. Bạn có thể khởi động lại trình duyệt.

Sau khi thực hiện các hành động này, bạn đến trang web bạn quan tâm - tất cả các chức năng của nó (tất nhiên, nếu nó không sử dụng các công nghệ của bên thứ ba khác) sẽ hoạt động, nhưng các lỗi với việc tải xuống Java sẽ không phát sinh.

Có thể làm mà không có java

Nếu bạn không cần sử dụng các ứng dụng web (như trong trường hợp máy khách ngân hàng VTB24), được tạo trên cơ sở Java EE, thì applet tương ứng cho bạn bất cứ điều gì. Dần dần, ngay cả các công ty lớn đang chuyển sang liên quan nhiều hơn bây giờ đối với web và công nghệ, tạo sự tương tác với các chức năng của dịch vụ của họ dễ dàng hơn nhiều cho người dùng cuối.

Tiếp xúc với

Applet là các ứng dụng nhỏ được đăng trên máy chủ Internet được vận chuyển bởi máy khách qua mạng, tự động đặt và chạy trên vị trí như một phần của tài liệu HTML. Khi applet đến khách hàng, quyền truy cập vào tài nguyên của nó bị giới hạn.

Dưới đây là mã nguồn của chương trình HelloWorld Canonical, được trang trí dưới dạng một applet:

nhập java.awt. *;
Nhập java.applet. *;
Lớp công khai helloworldapplet mở rộng applet (

g.drawopes ("Hello World!", 20, 20);
} }

Applet này bắt đầu với hai hàng nhập tất cả các gói phân cấp java.applet và java.awt. Hơn nữa, trong ví dụ của chúng tôi, có một phương thức sơn, thay thế lớp Epplet cùng tên. Khi gọi phương thức này, đối số được truyền có chứa một tham chiếu đến đối tượng lớp đồ họa. Cái sau được sử dụng để vẽ applet của chúng tôi. Sử dụng phương thức dây rút được gọi với

Đối tượng loại đồ họa này, ở vị trí màn hình (20.20), được hiển thị "Hello World".

Để chạy applet này bằng trình duyệt, chúng tôi sẽ phải viết một số hàng văn bản HTML.


Bạn có thể đặt các dòng này trong một tệp html riêng ( Helloworldapplet.html. ) Hoặc chèn chúng vào văn bản của chương trình này như một nhận xét và chạy chương trình appletviewer với văn bản nguồn của nó dưới dạng đối số.

Thẻ html.

Nhãn Được sử dụng để khởi động applet từ cả tài liệu HTML và từ chương trình AppletViewer. Chương trình AppletViewer thực hiện mỗi thẻ tìm thấy Trong một cửa sổ riêng biệt, trong khi các trình duyệt cho phép bạn đặt một số applet trên một trang. Cú pháp thẻ Vả T\u003e Hiện tại, đây là:

Mã \u003d appletfile.
Object \u003d appleterialfile.
Chiều rộng \u003d pixel.
Chiều cao \u003d pixel.



>
[< PARAM NAME = AttributeNamel VALUE = AttributeValuel >]
[< PARAM NAME = AttributeName2 VALUE = AttributeValue2 >]

Mã \u003d AppletClassFile.

bắt buộc Thuộc tính chỉ định tên của tệp chứa mã applet bị lỗi. Tên tệp được đặt thành Codebase, nghĩa là từ thư mục hiện tại hoặc từ thư mục được chỉ định trong thuộc tính Codebase. Trong Java 1.1, một thuộc tính Obje có thể được sử dụng thay vì thuộc tínhCt.

Object \u003d AppletClassSerialfile.

Chỉ định tên tệp chứa một applet tuần tự hóa mà sau đó sẽ được khôi phục. Khi applet được xác định theo cách này, phương thức init () phải được gọi, nhưng phương thức start (). Đối với applet, bạn phải chỉ định thuộc tính mã hoặc thuộc tính đối tượng, nhưng bạn không thể chỉ định các thuộc tính này cùng một lúc.

Chiều rộng và chiều cao - bắt buộc Các thuộc tính Chỉ định kích thước ban đầu của khu vực hiển thị của applet.

Lưu trữ \u003d Jarfiles.

Chỉ định danh sách các tệp JAR (được chia sẻ bởi dấu phẩy), được tải sẵn vào trình duyệt web. Các tệp lưu trữ này có thể chứa các lớp, hình ảnh, âm thanh và bất kỳ tài nguyên nào khác theo yêu cầu của applet. Để tạo lưu trữ, tiện ích JAR được sử dụng, cú pháp cuộc gọi được nhắc nhở bằng cách gọi lệnh TAR UNIX (chi tiết của các tiện ích xem

Phụ lục 1. ) :

c: \\\u003e jar cf soundmap.jar *. Class image.gif Sound.wav

Rõ ràng, việc chuyển các tập tin jar nén làm tăng hiệu quả của công việc. Do đó, nhiều công cụ phát triển (Lotus JavaBeans, Borland Jbuilder) có các công cụ để xuất bản các applet dưới dạng tệp JAR.

Codebase \u003d codebaseurl.

không bắt buộc Thuộc tính xác định URL cơ sở của mã applet, là thư mục trong đó tìm kiếm tệp applet thực thi sẽ được tìm kiếm (được chỉ định trong sode). Nếu thuộc tính này không được chỉ định, thư mục mặc định của tài liệu HTML này là mặc định. Codebase không phải chỉ định cùng một nút mà nó đã được tảiTài liệu TML.

Alt \u003d AlternateApplettext.

Ký alt - không bắt buộc Một thuộc tính chỉ định một tin nhắn văn bản ngắn phải được hiển thị nếu trình duyệt được sử dụng nhận ra cú pháp thẻ Nhưng các applet không biết làm thế nào. Điều này không giống với văn bản HTML có thể được chèn giữa Đối với các trình duyệt, không hỗ trợ applet.

Tên \u003d appletinstancename.

không bắt buộc Thuộc tính được sử dụng để chỉ định tên cho cá thể applet này. Gán tên Applet là cần thiết để các applet khác trên cùng một trang có thể tìm thấy chúng và giao tiếp với chúng. Để truy cập lớp con myapplet lớp applet có tên là Duke Duke, bạn cần phải viết:

Myapplet a \u003d getAppletContext (). GetApplet ("Duke");

Sau đó, sau đó, bạn đã có được một mô tả có tên là phiên bản của applet, bạn có thể gọi các phương thức của nó theo cách tương tự như được thực hiện với bất kỳ đối tượng nào khác.

Căn chỉnh \u003d căn chỉnh.

không bắt buộc Thuộc tính, hỏi phong cách căn chỉnh applet. Thuộc tính này được diễn giải giống như trong thẻ IMG, các giá trị của nó có thể - bên trái, phải, trên cùng, Texttop, Middle, ABSMIDDLE, BASEELINE, BOTTINE, ABSBONTOM.

Những thứ này không bắt buộc Các thuộc tính Đặt chiều rộng của dung lượng trống tính bằng pixel ở trên cùng và dưới cùng của applet (vspace) và ở bên trái và bên phải của nó (hspace). Chúng được giải thích theo cách tương tự như các thuộc tính của các thuộc tính thẻ IMG.

Tên tham số \u003d appletattribution1 Giá trị \u003d Value1

Thẻ này cho phép chuyển các đối số bạn cần từ trang HTML. Applet Nhận các thuộc tính này, gọi phương thức GetParameter () được mô tả dưới đây.

Thông số chuyển nhượng

getParameter (chuỗi)

Phương thức GetParameter trả về giá trị chuỗi tương ứng với tên tham số được chỉ định. Nếu bạn cần bất kỳ loại nào khác như một tham số, bạn phải tự chuyển đổi chuỗi tham số. Bây giờ bạn sẽ thấy một số ví dụ về việc sử dụng phương thức getParameter để trích xuất các tham số từ ví dụ dưới đây:


Dưới đây là hiển thị cách các tham số này được truy xuất:

Chuỗi fontname \u003d getParameter ("fontname");
Chuỗi fontsize \u003d integer.parseint (getParameter ("fontsize"));
Chuỗi hàng đầu \u003d float.valueof (getParameter ("hàng đầu"));
Chuỗi edup \u003d boolean.valueof (getParameter ("apparnables"));

Bối cảnh applet.

Cơ sở và getcodeBase.

Bạn có thể đã viết các applet cần tải xuống rõ ràng dữ liệu và văn bản. Java cho phép applet tải xuống dữ liệu từ thư mục mà tài liệu HTML chạy Applet được đặt (tài liệu - getDocumentBase) và từ thư mục mà tệp lớp với mã applet (cơ sở mã là getcodeBase).

Appletcontext và showdocument.

AppletContext là một công cụ cho phép bạn nhận thông tin về môi trường của applet đang hoạt động. Phương thức ShowDocument dẫn đến thực tế là tài liệu được chỉ định bởi tham số của nó được hiển thị trong cửa sổ hoặc khung của trình duyệt chính.

Gỡ lỗi

Việc in gỡ lỗi có thể được hiển thị ở hai nơi: trên bảng điều khiển và trong thanh trạng thái của chương trình xem applet. Để rút tin nhắn trên bảng điều khiển, bạn cần phải viết:

System.out.println ("Xin chào, chào mừng bạn đến với Java");

Tin nhắn Console rất tiện lợi vì bảng điều khiển thường không hiển thị cho người dùng applete và có đủ không gian cho một số tin nhắn. Trong trình duyệt Netscape, bảng điều khiển Java có sẵn từ menu Tùy chọn, "Hiển thị bảng điều khiển Java".

Phương thức Showstatus hiển thị văn bản trong vùng trạng thái của chương trình arpletviewer hoặc trình duyệt với hỗ trợ Java. Trong khu vực Trạng thái, bạn chỉ có thể rút một chuỗi tin nhắn.

Thứ tự khởi tạo applet

Dưới đây là thứ tự trong đó các phương thức lớp applet được gọi, với các giải thích, bạn cần hoặc không ghi đè phương thức này.

Phương thức init được gọi là đầu tiên. Trong đó bạn phải khởi tạo các biến của bạn.

Phương thức bắt đầu được gọi ngay sau phương thức init. Nó cũng được sử dụng như một điểm khởi đầu để nối lại công việc sau khi applet bị dừng. Trong khi phương thức init chỉ được gọi một lần - khi tải applet, hãy bắt đầu được gọi là mỗi lần tài liệu HTML là đầu ra chứa applet. Ví dụ: nếu người dùng chuyển đến trang www mới, sau đó quay lại trang với applet, applet sẽ tiếp tục hoạt động từ phương thức bắt đầu.

Phương pháp sơn được gọi mỗi khi applet bị hỏng. AWT giám sát trạng thái của Windows trong hệ thống và thông báo các trường hợp như vậy, ví dụ, chồng chéo cửa sổ applet bằng một cửa sổ khác. Trong những trường hợp như vậy, sau khi applet bật ra một lần nữa, phương thức sơn được gọi để khôi phục hình ảnh của nó.

Phương thức cập nhật mặc định của lớp Apple lần đầu tiên vẽ applet màu cho nền mặc định, sau đó phương thức sơn gọi. Nếu bạn đang ở trong phương thức sơn, hãy điền vào nền màu khác nhau, người dùng sẽ thấy đèn flash màu mặc định mỗi lần gọi phương thức cập nhật

- Đó là, bất cứ khi nào bạn vẽ lại applet. Để tránh điều này, bạn cần thay thế phương thức cập nhật. Nói chung, bạn cần thực hiện các thao tác vẽ trong phương thức cập nhật và trong phương thức Paint mà AWT sẽ thêm, chỉ cần gọi cập nhật.

Phương thức dừng được gọi tại thời điểm trình duyệt để lại một tài liệu HTML chứa applet. Khi gọi phương thức dừng, applet vẫn hoạt động. Bạn phải sử dụng phương pháp này để tạm dừng những chế độ ngầm đó có tác phẩm là tùy chọn với một applet vô hình. Sau khi người dùng quay lại trang này một lần nữa, bạn sẽ cần tiếp tục công việc của họ trong phương thức bắt đầu.

Phương pháp Phá hủy được gọi khi môi trường (ví dụ: trình duyệt Netscape) đã quyết định rằng applet cần được loại bỏ hoàn toàn khỏi bộ nhớ. Trong phương pháp này, bạn cần giải phóng tất cả các tài nguyên mà applet được sử dụng.

Người nhận thức

Hãy hoàn trả cho Applet HelloWorldapplet. Trong đó, chúng tôi đã thay thế phương pháp sơn, cho phép applet vẽ một bản vẽ. Lớp Applet cung cấp các phương thức vẽ bổ sung cho phép bạn vẽ hiệu quả các bộ phận màn hình một cách hiệu quả. Khi phát triển các applet đầu tiên, đôi khi không dễ hiểu tại sao phương thức cập nhật không bao giờ được gọi. Đối với sự khởi đầu cập nhật, có ba tùy chọn cho phương thức LINCTT.

Phương thức sơn lại được sử dụng để tuân thủ việc vẽ lại Applet. Phương thức này, lần lượt, gây ra phương thức cập nhật. Tuy nhiên, nếu hệ thống của bạn chậm hoặc được tải mạnh, phương thức cập nhật có thể không được gây ra. Truy vấn thời gian gần gũi để vẽ lại có thể được kết hợp AWT, vì vậy phương thức cập nhật có thể được gọi là SporDally. Nếu bạn muốn đạt được sự thay đổi khung hình nhịp nhàng, hãy sử dụng phương thức Liền điện (thời gian) - điều này sẽ làm giảm số lượng khung hình không được thực hiện đúng giờ.

Bạn có thể gọi phương thức sơn lại bằng cách đặt thời hạn rút lại (giai đoạn này được đặt trong mili giây so với cuộc gọi cuộc gọi của lịch sử).

sơn lại (x, y, w, h)

Phiên bản này giới hạn bản cập nhật màn hình thành hình chữ nhật được chỉ định, sẽ chỉ có những phần của màn hình trong đó.

sơn lại (thời gian, x, s, w, h)

Phương pháp này là sự kết hợp của hai cái trước đó.

Đặt kích thước của hình ảnh đồ họa.

Hình ảnh đồ họa được vẽ trong một hệ tọa độ tiêu chuẩn cho đồ họa máy tính, trong đó các tọa độ chỉ có thể nhận các giá trị nguyên và các trục được hướng từ trái sang phải và từ trên xuống. Applet và hình ảnh có một phương thức kích thước trả về đối tượng kích thước. Đã nhận được đối tượng kích thước, bạn có thể nhận và các giá trị của chiều rộng và chiều cao biến của nó:

Kích thước d \u003d size ();
System.out.println (d. Chiều rộng + "," + d.height);

Phương thức lớp đồ họa đơn giản

Các đối tượng lớp đồ họa có một số chức năng vẽ đơn giản. Mỗi hình có thể được vẽ đầy, hoặc chỉ vẽ biên giới của nó. Mỗi phương thức DrawRect, DrawRect, Fillrect và Filloval được gọi với bốn tham số: int x, int y, int chiều rộng và chiều cao int. Các tọa độ X và Y đặt vị trí của góc trên bên trái của hình, độ rộng và chiều cao tham số xác định viền của nó.

drawline (int x1, int u1, int x2, int u2)

Phương pháp này được vẽ bằng một đường thẳng giữa các điểm có tọa độ (X1, U1) và (x2, U2). Những dòng này là pixel thẳng đơn giản dày. Hỗ trợ cho các lông khác nhau và độ dày khác nhau của các dòng không được cung cấp.

drawarc và Fillarc.

Hình thức của các phương thức DrawAck và Fillarc như sau:

drawarc (int x, int, int chiều rộng, chiều cao int, startangle int, int exectangle)

Các phương thức này được vẽ (điền vào fillarc) một vòng cung được giới hạn bởi một hình chữ nhật (x, y, chiều rộng, chiều cao), bắt đầu bằng góc cứng và có kích thước góc của trục vẽ. Không có độ tương ứng với vị trí theo chiều kim đồng hồ trong 3 giờ, góc được đếm ngược chiều kim đồng hồ (ví dụ: 90 độ tương ứng với 12 giờ, 180 - 9 giờ, v.v.).

drawpolyson và Fillpolyson.

Nguyên mẫu cho các phương pháp này:

drawpolygon (int, int, int)

fillpolygon (int, int, int)

Phương pháp Drawpolygon vẽ đường viền của đa giác (dòng bị hỏng) được xác định bởi hai mảng có chứa X và ở tọa độ của các đỉnh, tham số phương thức thứ ba là số cặp tọa độ. Phương pháp Drawpolygon không đóng đường viền được phát hiện tự động. Để hình chữ nhật được đóng lại, tọa độ của các điểm đầu tiên và điểm cuối sẽ trùng khớp.

Hệ thống màu AWT được thiết kế để có thể làm việc với tất cả các màu. Sau khi màu được chỉ định, Java thấy trong màn hình hiển thị màu hiển thị mà nó tương ứng nhất với nó. Bạn có thể yêu cầu màu sắc trong ngữ nghĩa mà bạn đã quen - như một hỗn hợp màu đỏ, xanh lá cây và xanh dương, hoặc là sự kết hợp của bóng râm, độ bão hòa và độ sáng. Bạn có thể sử dụng các biến màu tĩnh. Các biến màu để đặt bất kỳ màu nào phổ biến - đen, trắng, đỏ, xanh lá cây, xanh dương, màu vàng, vàng, đỏ tươi, cam, hồng, xám, đen và lightgray.

Để tạo một màu mới, một trong ba nhà thiết kế được mô tả dưới đây được sử dụng.

Màu sắc (int, int, int)

Các tham số cho nhà thiết kế này là ba số nguyên trong phạm vi từ 0 đến 255 cho các thành phần màu đỏ, xanh lá cây và màu xanh.

Nhà thiết kế này có một đối số nguyên duy nhất trong đó các thành phần màu đỏ, xanh lá cây và xanh lam được chỉ định trong dạng đóng gói. Red chiếm bit 16-23, xanh - 8-15, xanh - 0-7.

Màu sắc (phao, phao, phao)

Các hàm tạo màu cuối cùng, màu sắc (float, float, float) lấy ba cài đặt của loại float (trong phạm vi từ 0,0 đến 1.0) cho màu cơ bản màu đỏ, xanh lá cây và xanh.

Phương pháp lớp màu

Hsbtorgb (float, float, float)
Rgbtoohsb (int, int, int, float);
}
} }

Trong các ví dụ trước, phương thức dây rút đã được sử dụng (chuỗi, x, y). Phương pháp này hiển thị một chuỗi bằng cách sử dụng phông chữ và màu sắc hiện tại. Điểm có tọa độ (X, Y) tương ứng với đường viền bên trái của các ký hiệu cơ sở, và không ở góc trên bên trái, như là thông lệ trong các phương thức vẽ khác. Để hiểu cách hình chữ nhật mô tả chuỗi được đặt, hãy đọc phần phông chữ ở cuối chương này.

Sử dụng phông chữ

Trình thiết kế lớp phông chữ tạo một phông chữ mới với tên, kiểu dáng và kích cỡ được chỉ định:

Font frongfont \u003d phông chữ mới ("helvetica", font.bold | font.italic, 24);

Tên phông chữ sau hiện có sẵn: Hộp thoại, Helvetica, Timesroman, Chuyển phát nhanh và Biểu tượng. Để chỉ định kiểu phông chữ bên trong gia đình này, ba biến tĩnh được cung cấp. - Font.plain, font.bold và font.italic, tương ứng với phong cách thông thường, chữ thảo và đậm.

Bây giờ hãy xem một vài phương pháp bổ sung.

getF Family và GetName.

Phương thức GetFamily trả về một chuỗi với tên của gia đình phông chữ. Sử dụng phương thức GetName, bạn có thể nhận được một tên phông chữ logic.

Phương thức này trả về một số nguyên đại diện cho kích thước phông chữ trong đoạn văn.

Phương thức này trả về một số nguyên tương ứng với kiểu phông chữ. Kết quả thu được có thể được bit so với các biến tĩnh của lớp phông chữ: - đồng bằng, đậm và in nghiêng.

isbold, isitalic, isplain

Các phương thức này trả về TRUE nếu kiểu phông chữ là một chữ in đậm (in đậm), in nghiêng (in nghiêng) hoặc thông thường (đồng bằng), tương ứng.

Định vị và phông chữ

: Fontmetrics.

Java sử dụng các phông chữ khác nhau và lớp FontMetrics cho phép lập trình viên đặt chính xác vị trí của văn bản được hiển thị trong applet. Trước hết, chúng ta cần hiểu một cái gì đó từ thuật ngữ thông thường được sử dụng khi làm việc với phông chữ:

  • Chiều cao
  • (Chiều cao) - kích thước từ trên xuống điểm thấp hơn của biểu tượng cao nhất trong phông chữ.
  • Dòng cơ bản
  • (Đường cơ sở) - dòng trên đó giới hạn dưới của các ký tự (không tính sự giảm (dòng dõi)) được căn chỉnh.
  • Leo
  • (Ascent) - Khoảng cách từ đường cơ sở đến đỉnh của biểu tượng.
  • Giảm
  • (Gốc) - khoảng cách từ đường cơ sở đến dưới cùng của biểu tượng.

Sử dụng fontmetrics.

Dưới đây là một số phương thức lớp Fontmetrics:

Phương thức này trả về độ dài của chuỗi được chỉ định cho phông chữ này.

bytewidth, charswidth.

Các phương thức này trả về chiều rộng của mảng byte được chỉ định cho phông chữ hiện tại.

getascent, getdescent, getheight

Những phương pháp này trả về sự gia tăng, giảm và chiều rộng của phông chữ. Số lượng nâng và giảm cho một chiều cao hoàn toàn của phông chữ. Chiều cao của phông chữ không chỉ là khoảng cách từ điểm thấp hơn của các chữ cái G và U cho đến điểm cao nhất của chữ T tiêu đề và các ký hiệu như dấu ngoặc. Chiều cao bao gồm gạch dưới, vv

getmaxascent và getmaxdescent.

Các phương pháp này phục vụ để có được nâng tối đa và giảm tất cả các ký tự trong phông chữ.

Văn bản trung tâm

Bây giờ chúng ta hãy sử dụng các phương thức của đối tượng FontMetrics để có được nâng, giảm và độ dài của dòng bạn muốn vẽ và với sự trợ giúp của các giá trị thu được, làm rõ nó trong applet của chúng tôi.

/*
*
*

*
*/
Nhập java.applet. *;
Nhập java.awt. *;
Lớp công khai helloworld mở rộng applet (
Phông chữ cuối cùng F \u003d phông chữ mới ("helvetica", font.bold, 18);
Sơn void công cộng (đồ họa g) (
Kích thước d \u003d this.size ();
G.setcolor (Color.white);
g.fillrect (0,0, d.width, d.height);
G.setcolor (color.black);
G.setfont (f);
DrawcenteringString ("Hello World!", D.Width, D.Height, G);
g.drawrect (0,0, d.width-1, d.height-1);
}
Công khai Void DrawCenteringString (String S, int w, int h, graphics g) (
Fontmetrics fm \u003d g.getfontmetrics ();
int x \u003d (w - fm.StringWidth (s)) / 2;
int y \u003d (fm.getascent () + (h - (fm.getascent () + fm.getedescent ())) / 2);
g.DrawString (s, x, y);
} }

Đây là những gì applet trông như đang hoạt động -

Trong bài viết này, tôi sẽ cố gắng đơn giản nhất có thể và hiểu những điều cơ bản về lập trình ở Delphi

Java cho người giả. Bài học 3. applet đơn giản.

Cuối cùng, chúng tôi đã tiếp cận điều quan trọng nhất: lập trình Java cho web, cho ngày hôm nay chúng tôi sẽ viết applet đầu tiên của chúng tôi. Tất nhiên, hãy bắt đầu với đơn giản nhất, với "Hello World!". Và vì vậy, đây là văn bản của applet này:

Nhập khẩu Java. . applet. . Applet. ;

Nhập khẩu Java. . awt. . Đồ họa. ;

Lớp công khai helloapplet. Kéo dài. Applet. {

Sơn lỗ void công cộng. ( Đồ họa G. ) {

G. . dây rút. ( "Chào thế giới!" , 0 , 50 );

}

}

Trong ví dụ này, chúng tôi kết nối các thư viện applet - để truy cập applet và lớp đồ họa - để sử dụng các chức năng đồ họa. Trong các applet, chúng ta không thể hiển thị văn bản cho các công cụ thư viện hệ thống, như chúng ta đã làm khi viết ứng dụng bảng điều khiển (xem và). Do đó, ở đây chúng ta sẽ sử dụng một chút phương pháp khác. Đặc biệt, lớp đồ họa, được thiết kế để vẽ trong trường của trường applet. Và thêm một sự khác biệt so với ứng dụng bảng điều khiển. Không có lớp với phương thức Main (). Để triển khai applet, chúng tôi khai báo lớp, công ty con từ lớp applet:

Lớp công khai helloapplet. Kéo dài. Applet.

Điều này có nghĩa là lớp mới của chúng ta helloapplet - sẽ có tất cả các trường và phương thức giống như applet, ngoại trừ các phương thức mà chúng ta đã vượt quá. Trong trường hợp này, sơn này là một phương pháp chịu trách nhiệm vẽ một đối tượng. Chương trình được đặt trong nó sẽ bắt đầu mỗi khi applet sẽ xảy ra. Trong trường hợp này, chương trình này chỉ bao gồm một dòng:

G. . dây rút. ( "Chào thế giới!" , 0 , 50 );

sẽ vẽ trên văn bản màn hình "Xin chào, thế giới!" Tại điểm với tọa độ 0,5.

Và như vậy, biên dịch chương trình. Chúng ta phải có một tệp hellopplet. class. Bây giờ chúng tôi kiểm tra nó bằng cách tạo applet đơn giản nhất có chứa tệp HTML:

"Helloapplet.group" Chiều rộng \u003d 200 chiều cao \u003d 200\u003e

Giao diện đồ họa, bản vẽ và hình ảnh có thể được thực hiện trong các applet. Applet là một loại ứng dụng đồ họa được triển khai dưới dạng các lớp ngôn ngữ Java được đặt trên máy chủ Internet được máy khách vận chuyển qua mạng, sẽ tự động được cài đặt và khởi động bởi trình duyệt như một phần của tài liệu HTML. Các applet cho phép bạn chèn vào các tài liệu trường, nội dung thay đổi theo thời gian, sắp xếp "Chạy chuỗi", menu, hoạt hình, thực hiện các tính toán trên trang khách. Các ứng dụng được trình duyệt thực thi khi hiển thị tài liệu HTML hoặc được xem bởi AppletViewer. Applet không thể ghi lại tệp và đọc thông tin từ các tệp. Những hạn chế này được liên kết với vấn đề bảo mật của máy khách, vì khách hàng không muốn chạy ngựa Trojan vào máy tính của họ. Có một số cấp độ bảo mật được cài đặt bởi máy khách cho các applet được tải xuống từ máy chủ (applet đáng tin cậy). Lớp học Applet. Cung cấp một giao diện giữa các applet và môi trường xung quanh của chúng. Applet là những người thừa kế lớp Applet.từ gói. java.. applet.từ gói AWT hoặc lớp con của anh ấy Japplet.từ gói swing.

Có một số phương pháp lớp. Applet.Điều đó quản lý việc tạo và thực hiện applet trên trang web. Applet không cần một phương thức chủ yếu (), mã bắt đầu được đặt trong phương thức trong đó (). Phương pháp quá tải trong đó () Tự động được gọi khi applet được tải để thực hiện khởi tạo ban đầu. phương pháp kHỞI ĐẦU ()Được gọi mỗi khi applet được chuyển vào trường xem của trình duyệt để bắt đầu các hoạt động. phương pháp dừng lại ()Được gọi mỗi khi applet xuất phát từ trường của trình duyệt web để cho phép applet hoàn thành các thao tác. phương pháp d.estroy ()Được gọi khi applet bắt đầu được dỡ từ trang để thực hiện phát hành tài nguyên cuối cùng. Ngoài các phương thức này, khi thực hiện applet, phương thức sẽ tự động khởi động sơn.() lớp học Thành phần.. phương pháp sơn.() không gây ra rõ ràng, nhưng chỉ từ các phương pháp khác, ví dụ từ phương thức sơn lại() Nếu cần biến thái là cần thiết.

Dưới đây là một ví dụ về một applet trong đó các phương thức được sử dụng. trong đó() , sơn.() , Phương pháp setcolor.() Cài đặt màu biểu tượng và phương thức dây rút.() vẽ dây.

/ * Ví dụ # 1: Ngày đầu ra:DATEApplet..java. */

gói. CHAPT11;

nhập khẩu java.awt.color;

nhập khẩu java.awt.graphics;

nhập khẩu java.util.calwendar;

nhập khẩu java.util.formatter;

nhập khẩu javax.swing.japplet;

công cộng lớp học DATEApplet. kéo dài. Japplet (

riêng tư Formatter DateFMT \u003d. mới Định dạng ();

riêng tư Formatter TimeFMT \u003d. mới Định dạng ();

công cộng void. trong đó () (

cẬP NHẬT (180, 100);

Lịch C \u003d Lịch.getInstance ();

Chuỗi thời trang \u003d "";

nếu. (C.get (lịch.era) \u003d\u003d 1)

datefmt.format ("% TA% TD.% TM.% TY NĂM"

Era, c, c, c, c);

timeFMT.Format ("% TT", c);

công cộng void. Sơn (đồ họa g) (

g.setcolor (màu.red);

g.DrawString ("applet bắt đầu trong" + TimeFMT,

10, GetHeight () / 2);

g.setcolor ( mới Màu (0,87,127));

g.drawopes (datefmt.tostring (), 13,

getHeight () - 10);

Quả sung. 11.2. Hàng và ngày.

Truy cập vào các mục ngày được thực hiện bằng cách sử dụng Lớp java.. util.. Lịch. Màu của các ký tự đầu ra được cài đặt bằng các trường trường. Màu sắc.

Sau khi tổng hợp tên của lớp chứa mã byte của applet, được đặt trong thẻ < applet.thông số > applet.> Tài liệu HTML. Ví dụ:

DATEApplet..lớp học.

chiều rộng \u003d 250 chiều cao \u003d 250\u003e

Tài liệu HTML nghệ sĩ là một trình duyệt, khởi động applet liên kết tương ứng.

Hầu hết các phương thức đồ họa được sử dụng trong các applet, cũng như được sử dụng trong các phương thức ví dụ setcolor.() , dây rút () - Tóm tắt các phương thức lớp cơ bản java.. awt.. Đồ họa.. Lớp học Đồ họa. Đại diện cho một bối cảnh đồ họa để vẽ, sau đó được hiển thị trên thiết bị vật lý. Các phương thức applet có được một đối tượng lớp Đồ họa. (bối cảnh đồ họa) như một tham số và với nó - màu hiện tại, phông chữ, vị trí con trỏ. Cài đặt bối cảnh thường thực hiện các phương thức cập nhật.() hoặc là sơn.() .

Một số phương thức lớp được liệt kê dưới đây. Đồ họa.:

vẽ đường thẳng(Int x1, int y1, int x2, int y2) - vẽ một dòng;

drawrect. (int x, int y, int chiều rộng, chiều cao int)fillRect (int x, int y, int chiều rộng, int chiều cao) - Vẽ một hình chữ nhật và hình chữ nhật đầy;

draw3drect (int x, int y, int chiều rộng, chiều cao int, boolean nâng cao) - vẽ một hình chữ nhật ba chiều;

drawRoundRect (int x, int y, int chiều rộng, chiều cao int,int arcwidth, int Archeight) - Vẽ một hình chữ nhật tròn;

draval (int x, int y, int chiều rộng, int chiều cao)- vẽ hình bầu dục;

drawpolygon (int xpoints, int ypoint, int npoint) - vẽ một đa giác (đa giác) được chỉ định bởi các mảng tọa độ x.y.;

drawpolygon. (Đa giác.p.) - vẽ một đa giác được chỉ định bởi đối tượng Đa giác.;

drawpolyline.(int.xpoints., int.ypoint., int.npoint.) - Vẽ một chuỗi các dòng được kết nối được chỉ định bởi các mảng x.y.;

drawarc (int x, int y, int chiều rộng, chiều cao int, startangle int, int arcangle) - Vẽ một vòng cung tròn;

drawImage (Image IMG, INT X, INT Y, màu BGColor, ImageObserver Observer)- Chèn một hình ảnh;

dây rút.(Chuỗi str, int x, int y) - vẽ một chuỗi;

setColor (Color C), getcolor ()- Đặt và trả về màu hiện tại;

getfont () - Trả về phông chữ hiện tại;

setfont (phông chữ font) - Đặt một phông chữ mới.

Phương pháp lớp Đồ họa. Được sử dụng để hiển thị đồ họa như các lớp Applet.và cho các lớp học Japplet..

Trong các ví dụ 2-4 dưới đây, việc sử dụng các phương thức lớp được chứng minh. Đồ họa. Để hiển thị hình ảnh đồ họa vào cửa sổ applet.

/ * Ví dụ # 2: Hình chữ nhật ba chiều:THỨ TỰ.rrect.. java. */

gói. CHAPT11;

nhập khẩu java.awt.color;

nhập khẩu java.awt.graphics;

nhập khẩu javax.swing.japplet;

công cộng lớp học Thrrect. kéo dài. Japplet (

công cộng void. Draw3D (Graphics G, int. X. int. y, int. chiều rộng int. Chiều cao boolean. Được nuôi dưỡng boolean. nó đã đầy) (

g.Draw3drect (x, y, chiều rộng - 1, chiều cao - 1,

g.draw3drect (x + 1, y + 1, chiều rộng - 3,

chiều cao - 3, Isra được);

g.Draw3drect (x + 2, y + 2, chiều rộng - 5,

chiều cao - 5, Isra được);

nếu. (nó đã đầy)

g.fillrect (x + 3, y + 3, chiều rộng - 6,

công cộng void. Sơn (đồ họa g) (

g.setcolor (color.gray);

draw3D (G, 10, 5, 80, 40, thật., sai);

draw3D (G, 130, 5, 80, 40, sai, sai);

draw3D (G, 10, 55, 80, 40, thật., thật.);

draw3D (G, 130, 55, 80, 40, sai, thật.);

Quả sung. 11.3. Hình chữ nhật ba chiều

Gói. java.awt. Chứa một số lượng lớn các lớp được sử dụng cho đầu ra hình ảnh: Màu sắc, Nét chữ, Hình ảnh., Hình dạng., Tranh sơn dầu. Vân vân. Ngoài ra, khả năng của gói này đang mở rộng các gói. java.awt.gom., java.awt.color., java.awt.image.khác.

/* thí dụ # 3: xây dựng hình : Buildshape.java. */

gói. CHAPT11;

nhập khẩu java.awt.color;

nhập khẩu java.awt.graphics;

nhập khẩu java.awt.graphics2d;

nhập khẩu java.awt.shape;

nhập khẩu java.awt.geom. *;

nhập khẩu javax.swing.japplet;

công cộng lớp học Buildshape. kéo dài. Japplet (

công cộng void. trong đó () (

cẬP NHẬT (200, 205);

công cộng void. Sơn (đồ họa g) (

Graphics2D G2 \u003d (Graphics2d) G;

g2.Rotate (Math.pi / 6);

drawchessboard (g);

//xoay

g2.Rotate (-math.pi / 6);

g.setoxormode ( mới Màu (200, 255, 250));

Hình dạng e \u003d. mới Ellopse2d.float (70, 75, 70, 50);

// Vẽ một hình elip

// Vẽ một bàn cờ

công cộng void. Drawchesboard (Graphics g) (

int. Kích thước \u003d 16;

cho (int. y \u003d 0; Y.< 8; y++) {

cho (int. x \u003d 0; X.< 8; x++) {

nếu. ((x + y)% 2 \u003d\u003d 0)

g.setcolor (Color.Blue);

g.setcolor (Color.white);

g.fillrect (kích thước 75 + x *, kích thước Y * - 25, kích thước, kích thước);

g.setcolor (color.black);

g.DrawString ( mới Tính cách (

(char.) ('8' - y)). Tostring (), 66, Y * Kích thước - 13);

g.DrawString ( mới Tính cách (

(char.) (y + 'a')). Tostring (),

79 + Y * Kích thước, 8 * Kích thước - 14);

Quả sung. 11.4. Xây dựng các số liệu khác nhau

// Ví dụ # 4: Kết luậnGif.-Mước:DrawImage.. java.

gói. CHAPT11;

nhập khẩujava.awt.graphics;

nhập khẩujava.awt.Image;

nhập khẩujavax.swing.japplet;

công cộng lớp học DrawImage. kéo dài. Japplet (

riêng tư Img hình ảnh;

công cộng void. trong đó () (

iMG \u003d GetImage (getCodeBase (), "joli.gif");

công cộng void. Sơn (đồ họa g) (

g.DrawImage (IMG, 0, 0, ĐIỀU NÀY);

Khi sử dụng Thuộc tính thẻ Có thể chuyển các tham số khỏi tài liệu HTML sang mã applet. Hãy để tài liệu HTML trông giống như:

Tham số aplet.

chiều rộng \u003d 250 chiều cao \u003d 300\u003e

applet.>

Sau đó để đọc và xử lý các tham số bnumber.tiểu bang Applet sẽ trông như thế này:

/ * Ví dụ # 5: Chuyển các tham số applet: ReadParam.java */

gói. CHAPT11;

nhập khẩujava.awt.color;

nhập khẩujava.awt.graphics;

nhập khẩujava.applet.applet;

công cộng lớp học RechParam. kéo dài. Applet (

riêng tư int. Bnum;

riêng tư boolean. tiểu bang;

công cộng void. khởi đầu () ( // đọc hiểu thông số

param \u003d getParameter ("trạng thái");

nếu.(Param! \u003d vÔ GIÁ TRỊ)

nhà nước \u003d. mới Boolean (param);

param \u003d getParameter ("Bnumber");

nếu.(Param! \u003d vÔ GIÁ TRỊ)

bnum \u003d integer.parseint (param);

} nắm lấy(NumberFormateException E) (

nhà nước \u003d. sai;

công cộng void. Sơn (đồ họa g) (

gấp đôi. d \u003d 0;

nếu.(tiểu bang) d \u003d math.pow (bnum, 2);

khác. G.DrawString ("tham số lỗi", 0, 11);

g.DrawString ("Tuyên bố:" + Trạng thái, 0, 28);

g.DrawString ("Giá trị B:" + Bnum, 0, 45);

g.DrawString ("B Power 2:" + D, 0, 62);

Quả sung. 11,5. Thông số chuyển trong applet

Nếu tham số không có sẵn, phương thức getParameter.() Trở về vÔ GIÁ TRỊ.

Khi sử dụng các thành phần điều khiển trong các applet, đó là thông lệ để sử dụng các lớp từ gói javax.. lung lay.Trong đó thành phần trên màn hình được tạo bởi các công cụ Java và phụ thuộc tối thiểu vào nền tảng và thiết bị. Các lớp thành phần như vậy là Jbutton., Jckeckbox., Jdialog., Jmothy., Jcombobox., Jmothy., Jtextfield., Jtextarea. khác. Các thành phần, như một quy tắc, được đặt trong container (lớp C.diễn viên.), đó là một đối tượng ngầm của bất kỳ ứng dụng đồ họa nào. Một liên kết rõ ràng đến thùng chứa có thể được lấy bằng phương pháp. getContentPane.() .

// Ví dụ # 6: applet với thành phần: myjapplet.java

gói. CHAPT11;

nhập khẩu java.awt.container;

nhập khẩu javax.swing.japplet;

nhập khẩu javax.swing.jlabel;

công cộng lớp học Myjapplet. kéo dài. Japplet (

riêng tư Jlabel lbl \u003d. mới Jlabel ("swing-applet!");

công cộng void. trong đó () (

Container c \u003d getContentPane ();

Quả sung. 11.6. Applet với Mark.

Nhãn văn bản được thực hiện trong chương trình này. Jlabel. Trên mẫu trong applet. Thiết kế lớp học Jlabel. Lấy đối tượng Chuỗi Và sử dụng giá trị của nó để tạo nhãn. Tự động được gọi khi tải phương thức applet trong đó () Thường chịu trách nhiệm khởi tạo các trường và vị trí của thành phần trên biểu mẫu. Đối với điều này, phương pháp được gọi là thêm vào ()lớp học Thùng đựng hàng, nơi đặt thành phần vào thùng chứa. phương pháp thêm vào () Nó không được gọi ngay lập tức, như bạn có thể làm trong thư viện AWT. Gói. Lung lay. Yêu cầu tất cả các thành phần được thêm vào "Bảng tạm giam" Khung nội dungVì vậy, trước tiên bạn cần gọi phương thức getContentPane ()lớp học Japplet.Để tạo một tham chiếu đến một đối tượng như một phần của quy trình thêm vào ().

// Ví dụ # 7: Vòng đời của Applet:Demolc.. java.

gói. CHAPT11;

nhập khẩu java.awt.color;

nhập khẩu java.awt.graphics;

nhập khẩu javax.swing.japplet;

công cộng lớp học Demolc. kéo dài. Japplet (

riêng tư int. Starx \u003d.

{ 112, 87, 6, 71, 47, 112, 176, 151, 215, 136 };

riêng tư int. Stary \u003d.

{ 0, 76, 76, 124, 200, 152, 200, 124, 76, 76 };

riêng tư int. TÔI;

riêng tư Màu c;

công cộng void. trong đó () (

c \u003d. mới Màu (0, 0, 255);

setbackground (color.light_gray);

công cộng void. khởi đầu () (

int. j \u003d i * 25;

nếu. (J.< 255)

c \u003d. mới Màu sắc (J, J, 255 - J);

khác. i \u003d 1;

công cộng void. Sơn (đồ họa g) (

g.fillpolygon (starx, stary, starx.length);

g.setcolor (color.black);

g.drawpolygon (starx, stary, starx.length);

công cộng void. dừng lại () (

Quả sung. 11.7. Màu đa giác và applet vòng đời

Khi làm việc với phông chữ, bạn có thể tìm ra cái nào trong số chúng có sẵn trên máy tính và sử dụng chúng. Đối với thông tin này, phương pháp áp dụng getAvailableFonTf Familynames ()lớp học Graphicsen Môi trường. Phương thức trả về một loạt các chuỗi chứa tên của tất cả các gia đình phông chữ có sẵn đã đăng ký trên máy tính này.

// Ví dụ # 8: Phông chữ Access OS: fonts..java.

gói. CHAPT11;

nhập khẩu java.awt.font;

nhập khẩu java.awt.graphics;

nhập khẩu java.awt.graphicsen Môi trường;

nhập khẩu javax.swing.japplet;

công cộng lớp học Phông chữ. kéo dài. Japplet (

riêng tư Phông chữ chuỗi;

công cộng void. trong đó () (

Graphicsen Môi trường GE \u003d.

Graphicsen Môi trường .GetLocalGraphicsEn Môi trường ();

phông chữ \u003d ge.getavailablefontfamilynames ();

cẬP NHẬT (700, 400);

công cộng void. Sơn (đồ họa g) (

int. xsize \u003d getwidth () / 170;

cho (int. i \u003d 0; TÔI.< fonts.length; i++) {

g.setfont ( mới Nét chữ (

phông chữ [i], font.plain, 12)); // tiêu đề, phong cách, kích thước

g.drawopes (phông chữ [i],

170 * (i% xsize), 13 * (i / xsize + 1));

Quả sung. 11.8. Đầu ra của danh sách phông chữ

15 trả lời

Tôi nghĩ rằng các applet Java đã bị lu mờ bởi Flash và ActionScript (trừng phạt vô tình), dễ sử dụng hơn nhiều để thực tế là các applet Java đã được sử dụng tại thời điểm (hoạt hình + ứng dụng hỗ trợ ứng dụng).

Sự thành công của Flash về vấn đề này, lần lượt được liên kết với các kích thước tệp nhỏ hơn nhiều, cũng như lợi ích từ Sun chống lại Microsoft, do đó Microsoft đã xóa MSJVM khỏi Internet Explorer trong quá trình cương cứng Netscape và sự thống trị nặng nề của Netscape .

1) AWT được thực hiện cho giao diện người dùng khủng khiếp. Swing được cải thiện, nhưng đã quá muộn, vì ... 2) Microsoft đã từ chối hỗ trợ Java trong trình duyệt (MSJVM độc quyền của nó) và trước đó, nó chỉ hỗ trợ phiên bản mới nhất được phát hành, tương thích với JDK 1.1.
3) Vì vậy, ngày nay bạn không thể chắc chắn rằng applet sẽ hoạt động trên hầu hết các máy không phải là nhà phát triển, không giống như Flash.

Điều tương tự có thể được nói về ActiveX.

Tại sao nó có giá, mặt trời đổ tiền và tài nguyên trong applet một lần nữa. Họ đã thực hiện một số cải tiến đáng kể trong JDK 1.6.10 để làm mềm nhiều applet applet được thể hiện. Ví dụ: sử dụng bản cập nhật này, bạn có thể hiển thị tải / hoạt hình người dùng của riêng mình trong khi applet được tải và trình cắm được thêm vào chế độ ăn chính để tăng năng suất.

Họ cũng bắt đầu sáng kiến \u200b\u200bcạnh tranh trực tiếp với Flash và Silverlight - JavaFX.

Thị trường sẽ phản ứng với tất cả những điều này, vẫn phải nhìn thấy, nhưng đây chắc chắn là một bước thú vị ở bên mặt trời, do sự thống trị của Flash trên thị trường.

Tôi đoán nó, bởi vì Java là "Real", tức là. Ngôn ngữ mục đích chung. Để tạo một applet, bạn cần viết mã và không có phím tắt.

Bây giờ, một ổ đĩa flash xuất hiện, v.v., bạn có thể rất đơn giản là Drape và ném theo cách của mình bằng cách tạo một hình ảnh động thú vị cho trang web của bạn. Đây là một rào cản nhập cảnh thấp hơn nhiều - bạn không cần biết cách lập trình để tạo hoạt động hoạt hình Flash. Do đó, Flash áp dụng và các applet Java gần như không được sử dụng.

Tôi nghĩ rằng các applet là thiệt hại theo cách trong trận chiến giữa Microsoft và Sun.

Đầu tiên, JVM đã được tải rất chậm và yêu cầu quá nhiều bộ nhớ. Sau đó, khi sự gia tăng sức mạnh tính toán khiến JVM có thể, Sun đã chơi hết mình vì tôi đã cố gắng kiểm soát tất cả những điều Java:

Trong khuôn khổ của một yêu cầu antimonopoly tư nhân khác, một mặt trời vào tháng 3, Sun, đã yêu cầu lệnh cấm hợp pháp sơ bộ, yêu cầu Microsoft cho phép máy ảo Java hiện tại (JVM) với hệ điều hành Windows XP. Microsoft tuyên bố rằng quyết định đưa vào JVM trong tuần này là kết quả trực tiếp của việc vướng víu hợp pháp cuối cùng với Sun, nhưng Microsoft có kế hoạch vô hiệu hóa hỗ trợ Java trong Windows sau ngày 1 tháng 1 năm 2004. Khóa học Microsoft Reverses sẽ bao gồm Java VM trong Windows XP - ngay bây giờ

Họ đã mất mãi mãi để tải xuống và nhập trình duyệt, và sau đó cho nhiều người mà họ không làm việc. Cuối cùng khi họ khởi động, các giao diện xấu xí và vụng về. Tôi nghĩ rằng trải nghiệm người dùng xấu đã trở thành một bước tiến lớn đối với một applet lỗi thời.

Vì vậy, để trả lời câu hỏi ban đầu, tôi có câu hỏi của riêng mình - bạn hỏi: "Tại sao không sử dụng java-applet nhiều hơn", và câu trả lời của tôi "Tại sao muốn ai đó?"

Tôi thấy chúng rất nhiều trong các cài đặt Acedemia (được đặt trong các khoa hoặc khoa), nhưng bạn ở ngay rằng họ không phổ biến lắm.

Tuy nhiên, hãy nhớ rằng những lời hứa lớn Java đạt được. Chúng tôi có Flash, Java Applet, Silverlight và không ngừng cải thiện các khung JavaScript.

Bây giờ, nếu tôi thực hiện một ý kiến \u200b\u200bcá nhân - tôi nghĩ Java hoàn toàn không có gì cả. Họ, như một quy luật, trông xấu xí, môi trường thực thi Java làm cho sự hiện diện của nó trong HĐH quá nổi tiếng (từ quan điểm trực quan hóa thời gian thực hiện, cập nhật và trình cài đặt xấu xí). Flash được kết hợp tốt hơn nhiều với môi trường truyền thông phong phú và triển khai trong suốt (và phổ biến).

Tôi tin rằng các vấn đề tương thích là một vấn đề lớn. Cụ thể với IE và Microsoft Java VM, không đáp ứng các tiêu chuẩn, như nó có thể.

Ngay cả với JVM Sun, bạn có thể gặp vấn đề. Tôi đã có niềm vui nơi tôi có hai applet của bên thứ ba yêu cầu các phiên bản Java khác nhau, gây ra tất cả các vấn đề. Sun đã cố gắng giải quyết vấn đề này, thay thế các applet trên Java Web Start, trong đó chứa một liên kết đến trình duyệt, chạy ứng dụng vào cửa sổ của chính nó chứ không phải bên trong trình duyệt. (Trong lý thuyết với JWS, bạn có thể có các ứng dụng khác nhau bằng các máy ảo khác nhau, nhưng chúng không bao giờ làm việc cho tôi, như họ nên.)

Khuyến mãi với JavaScript cũng cho phép nhà phát triển các trang web phong phú hơn nhiều, rất nhiều điều trong quá khứ mà bạn có thể làm chỉ trong các applet hiện có thể được thực hiện với Ajax.

Đầu tiên, họ đã không rời đi. Bạn vẫn có thể tìm thấy rất nhiều applet trên internet, nhiều người sử dụng chúng, đặc biệt, để chứng minh các thuật toán, v.v.
Ưu điểm: Bạn có thể sử dụng các thư viện hiện có (toán học, vật lý, sắp xếp, đồ thị, v.v.) và nó nhanh hơn Flash.
Nhược điểm: Có lẽ nó sẽ rất rủi ro nhắm vào một JVM gần đây (mặc dù Sun đã tạo ra một công việc tốt trên các bản cập nhật tự động, có vẻ như nhiều người đã sử dụng Java 1.6), thời gian tải xuống hơi chậm (ngay cả mặc dù tiến trình lớn trong việc này) .

Bạn cũng có thể tìm thấy nhiều loại applet trò chơi, chẳng hạn như mọt sách, có một lợi thế bổ sung, có lẽ, để thực hiện một phần công việc được thực hiện để khởi chạy chúng trên điện thoại di động ...

Thứ hai, tôi có thể dự đoán sự quan tâm đến JavaFX. Applet trên steroid, có khả năng phá vỡ huyền thoại "aple outure xấu xí" ...: -)

Cuối cùng, một thư viện tương tự như xử lý giúp dễ dàng tạo các applet inperense đồ họa và bạn có thể tìm thấy nhiều trong số chúng trên mạng. Trên Open Processing, trong đó điều tồi tệ nhất (người mới trong lập trình) gần với càng tốt!

Tôi tự hỏi làm thế nào JVM phổ biến? Trong trường hợp flash IE5, nó đã cài đặt sẵn nó bằng cách cung cấp nó với một cơ sở dữ liệu người dùng tự động lớn. Nhưng nếu JVM không được bao gồm trong việc cài đặt HĐH, người dùng sẽ không có. Tôi tin rằng là nhà phát triển, bạn nhắm vào cơ sở dữ liệu cài đặt lớn nhất, có nghĩa là sự lựa chọn của Flash so với Java.

Ở đây và có java applet; Chắc chắn không phải ở mọi nơi.