Java: Lớp JComponent

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Với ngoại lệ của container cấp cao nhất, tất cả các thành phần Swing đều có tên bắt đầu với "J" trong JComponent lớp. Ví dụ, JPanelJScrollPaneJButton và JTable và tất cả đều thừa kế từ JComponent. Tuy nhiên, JFrame và JDialog thì không như vậy bởi vì chúng thực thi bộ chứa cấp cao nhất.

Lớp JComponent mở rộng từ lớp Container, lớp này lại mở rộng từ lớp Component. Lớp Component bao gồm mọi thứ từ cung cấp các gợi ý bố cục đến hỗ trợ vẽ sự kiện. Lớp Container còn hỗ trợ việc thêm các thành phần vào bộ chứa và đặt chúng ra. Các bảng API của phần này  tóm tắt các phương pháp thường được sử dụng nhất của Component container cũng như của JComponent.

Các tính năng của JComponent

Lớp JComponent cung cấp các tính năng sau đây cho các thành phần con của nó:

Tool tips

Bằng cách xác định một chuỗi với phương thức setToolTipText, bạn có thể cung cấp trợ giúp cho người dùng một thành phần. Khi con trỏ dừng lại trên thành phần thì chuỗi xác định được hiển thị trong một cửa sổ nhỏ xuất hiện ở gần thành phần. Xin xem phần Cách sử dụng Tool tips.

Vẽ và đường viền

Phương thức setBorder cho phép bạn xác định đường viền mà một thành phần hiển thị xung quanh các cạnh của nó. Để vẽ bên trong của một thành phần thì bạn ghi đè lên phương thức paintComponent. Xin xem phần Cách sử dụng đường viền và phần Thực hiện vẽ tùy chỉnh.

Ứng dụng mở rộng pluggable look and feel

Ở phía sau (back-end), mỗi đối tượng JComponent có một đối tượng ComponentUI tương ứng để thực hiện tất cả các thao tác vẽ, xử lý sự kiện, xác định kích thước, ... cho JComponent đó. Chính xác là đối tượng ComponentUI được sử dụng phụ thuộc vào look and feel hiện thời, như vậy thi bạn có thể thiết lập bằng cách sử dụng phương thức UIManager.setLookAndFeel. Xin xem chi tiết phần Thiết lập Look and Feel.

Thuộc tính tùy chỉnh

Bạn có thể kết hợp một hoặc nhiều thuộc tính (các cặp tên / đối tượng) với bất kỳ JComponent nào. Ví dụ, một người quản lý bố cục có thể sử các thuộc tính để liên kết một đối tượng ràng buộc với mỗi JComponent mà nó quản lý. Bạn thiết lập và lấy thuộc tính bằng cách sử dụng các phương thức putClientProperty và getClientProperty. Để biết thông tin tổng quát về thuộc tính, thấy tính .

Hỗ trợ bố cục

Mặc dù lớp Component cung cấp các phương thức gợi ý bố cục như getPreferredSize và getAlignmentX, nhưng nó lại không cung cấp bất kỳ cách thức nào để thiết lập các gợi ý bố cục nhằm rút ngắn việc tạo một lớp con và ghi đè các phương thức. Để cung cấp cho bạn một cách khác để thiết lập gợi ý bố cục, JComponent bổ sung thêm các phương thức setter là setMinimumSize setMaximumSize setAlignmentX và setAlignmentY. Xem chi tiết phần Đặt các thành phần vào trong một bộ chứa.

Hỗ trợ cho khả năng tiếp cận

JComponent cung cấp API và chức năng cơ bản để trợ giúp các công nghệ hỗ trợ như các bộ đọc màn hình để lấy thông tin từ các thành phần Swing.

Hỗ trợ kéo và thả

JComponent cung cấp API để thiết lập một bộ xử lý chuyển giao của một component, đó là cơ sở để hỗ trợ việc kéo và thả của Swing.

Tăng gấp đôi khả năng đệm

Đệm double làm mềm việc vẽ trên màn hình.

Tổ hợp phím

Tính năng này làm cho các thành phần phản ứng khi người dùng nhấn một phím trên bàn phím. Ví dụ, trong look and feel khi một nút được nhấn, thì nhấn phím gõ phím Space là tương đương với một cú nhấp chuột vào nút đó. Look and Feel sẽ tự động thiết lập các liên kết giữa nhấn và thả phím Space và tạo ra kết quả trên nút.

API JComponent

JComponent cũng cung cấp nhiều phương thức mới và kế thừa nhiều phương thức từ Component và Container. Bảng dưới đây tóm tắt các phương thức được sử dụng phổ biến nhất.

  • Tùy biến phần Appearance
  • Thiết lập và bắt trạng thái Component
  • Xử lý sự kiện
  • Các thành phần vẽ
  • Đối phó với những Containment Hierarchy
  • Đặt các Component
  • Lấy kích thước và thông tin vị trí
  • Xác định kích thước và vị trí tuyệt đối
Tùy biến phần Appearance
Phương thức Mục đích
void setBorder (Border) 
Border getBorder ()
Thiết lập hoặc lấy các đường viền của các thành phần.
void setForeground (Color) 
void setBackground (Color)
Đặt nền trước hoặc màu nền cho các thành phần. Tiền cảnh thường là màu sắc được sử dụng để vẽ các văn bản trong một thành phần. Các nền là (không ngạc nhiên) màu sắc của vùng nền của các thành phần, giả định rằng thành phần này là không rõ ràng.
Màu getForeground ()
Màu getBackground ()
Lấy nền trước hoặc màu nền cho các thành phần.
làm mất hiệu lực setOpaque (boolean) 
boolean isOpaque ()
Thiết lập hoặc lấy cho dù thành phần này là không rõ ràng. Một thành phần không rõ ràng đầy màu nền với màu nền của nó.
void setFont (Font) 
Font getFont ()
Thiết lập hoặc lấy chữ của thành phần. Nếu một phông chữ chưa được đặt ra cho các thành phần, các font chữ của cha mẹ của nó được trả về.
void setCursor (Cursor) 
Cursor getCursor ()
Thiết lập hoặc lấy con trỏ hiển thị trên các thành phần và tất cả các thành phần nó chứa (trừ trẻ em có đặt con trỏ của riêng mình). Ví dụ: aPanel.setCursor (Cursor.getPredefinedCursor (Cursor.WAIT_CURSOR));

 

Thiết lập và bắt trạng thái của Component
Phương thức Mục đích
làm mất hiệu lực setComponentPopupMenu (JPopupMenu) Thiết lập JPopupMenu này JComponent . Các giao diện người dùng là trách nhiệm đăng ký cam kết ràng buộc và thêm người nghe cần thiết như vậy mà JPopupMenu sẽ được hiển thị tại thời điểm thích hợp. Khi JPopupMenu được hiển thị phụ thuộc vào cái nhìn và cảm nhận:. Một số có thể hiển thị nó trên một sự kiện chuột, một số có thể cho phép một chính ràng buộc Nếu cửa sổ bật lên là null, và getInheritsPopupMenu trả về đúng , sau đó getComponentPopupMenu sẽ được giao cho các mẹ. Điều này cung cấp một cách để làm cho tất cả các thành phần con kế thừa popupmenu của phụ huynh.
 
void setTransferHandler (TransferHandler) 
TransferHandler getTransferHandler ()
Đặt hoặc loại bỏ các transferHandler tài sản. Các TransferHandler hỗ trợ trao đổi dữ liệu thông qua cắt, sao chép hoặc dán vào / từ clipboard cũng như một kéo và thả. Xem Giới thiệu về Chia sẽ để biết thêm chi tiết.
void setToolTipText (String) Đặt văn bản để hiển thị trong một mẹo công cụ. Xem Làm thế nào để sử dụng Công cụ Mẹo để biết thêm thông tin.
void setName (String) 
Chuỗi getName ()
Thiết lập hoặc lấy tên của các thành phần. Điều này có thể hữu ích khi bạn cần phải kết hợp văn bản với một thành phần mà không hiển thị văn bản.
boolean isShowing () Xác định liệu các thành phần được hiển thị trên màn hình. Điều này có nghĩa rằng các thành phần phải được nhìn thấy, và nó phải ở trong một container có thể nhìn thấy và hiển thị.
làm mất hiệu lực setEnabled (boolean) 
boolean isEnabled ()
Thiết lập hoặc lấy cho dù các thành phần được kích hoạt. Một thành phần kích hoạt có thể đáp ứng cho người sử dụng đầu vào và tạo ra sự kiện.
làm mất hiệu lực setVisible (boolean) 
boolean isVisible ()
Thiết lập hoặc lấy cho dù các thành phần có thể nhìn thấy. Linh kiện ban đầu là có thể nhìn thấy, với ngoại lệ của các thành phần cấp cao nhất.

 

Phương thức Mục đích
Xử lý sự kiện
void addHierarchyListener (hierarchyListener l) 
trống removeHierarchyListener (hierarchyListener l)
Thêm hoặc loại bỏ người nghe phân cấp quy định để nhận được hệ thống phân cấp thay đổi các sự kiện từ thành phần này khi phân cấp để mà chứa này thuộc về những thay đổi. Nếu nghe l là null, không có ngoại lệ được ném ra và không có hành động được thực hiện.
void addMouseListener (MouseListener) 
trống removeMouseListener (MouseListener)
Thêm hoặc loại bỏ một người biết lắng nghe chuột đến hoặc từ các thành phần. Nghe Chuột được thông báo khi người dùng sử dụng chuột để tương tác với lắng nghe để thành phần.
void addMouseMotionListener (MouseMotionListener) 
trống removeMouseMotionListener (MouseMotionListener)
Thêm hoặc loại bỏ một chuyển động nghe chuột đến hoặc từ các thành phần. Chuột nghe chuyển động sẽ được thông báo khi người dùng di chuyển con chuột trong thời lắng nghe để giới hạn thành phần của.
void addKeyListener (KeyListener) 
trống removeKeyListener (KeyListener)
Thêm hoặc loại bỏ một người biết lắng nghe chính hoặc từ các thành phần. Nghe chính được thông báo khi người dùng nhập vào bàn phím và lắng nghe để thành phần có trọng tâm bàn phím.
void addComponentListener (ComponentListener) 
trống removeComponentListener (ComponentListener)
Thêm hoặc loại bỏ một người biết lắng nghe thành phần hoặc từ các thành phần. Người nghe thành phần được thông báo khi lắng nghe để thành phần được ẩn, hiển thị, di chuyển, hoặc thay đổi kích cỡ.
boolean chứa (int, int) 
boolean chứa (điểm)
Xác định xem điểm quy định là trong thành phần. Các đối số phải được quy định trong các điều khoản của hệ tọa độ của thành phần. Hai int lập luận xác định x và y tọa độ tương ứng.
Hợp phần getComponentAt (int, int) 
Component getComponentAt (điểm)
Quay trở lại các thành phần có chứa các quy định x, y vị trí. Các thành phần con trên cùng có được trả lại trong trường hợp các thành phần chồng lên nhau. Điều này được xác định bằng cách tìm các thành phần gần nhất với chỉ số 0 mà tuyên bố để chứa các điểm được đưa ra thông quaComponent.contains () .
Hợp phần setComponentZOrder (component comp, int index) Di chuyển các thành phần quy định cho chỉ số z-trật tự quy ​​định tại các container. Nếu thành phần là con của một số container khác, nó được lấy từ container trước khi được thêm vào vùng chứa này.Sự khác biệt quan trọng giữa phương pháp này và java.awt.Container.add (Component, int) là phương pháp này không gọi removeNotify trên các thành phần trong khi loại bỏ nó từ container trước đây của nó, trừ khi cần thiết và khi được cho phép bởi hệ thống cửa sổ có nguồn gốc cơ bản. Bằng cách này, nếu các thành phần có sự tập trung bàn phím, nó duy trì sự tập trung khi di chuyển đến vị trí mới. Lưu ý:   Các z-trật tự xác định thứ tự mà các thành phần được sơn. Các thành phần với z-trật tự cao nhất vẽ đầu tiên và thành phần với z-trật tự thấp nhất vẽ cuối cùng.Trường hợp các thành phần chồng lên nhau, các thành phần với z-trật tự thấp vẽ trên các thành phần với z-trật tự cao.


 

Hợp phần getComponentZOrder (component comp)
Trả về chỉ số z-trật tự của các thành phần bên trong container. Cao hơn một thành phần trong hệ thống phân cấp z-trật tự, thấp hơn chỉ số của nó. Các thành phần với chỉ số z-trật tự thấp nhất được sơn cuối cùng, trên tất cả các thành phần con khác.

 

Phương thức Mục đích
Các thành phần sơn
void repaint () 
trống repaint (int, int, int, int)
Yêu cầu tất cả hoặc một phần của thành phần được sơn lại. Bốn int lập luận xác định các giới hạn ( x , y , chiều rộng, chiều cao, trong đó đặt hàng) của hình chữ nhật được sơn.
void repaint (Rectangle) Yêu cầu các khu vực quy định trong thành phần được sơn lại.
void xác nhận lại () Yêu cầu các thành phần và các thùng chứa bị ảnh hưởng của nó được đặt ra một lần nữa. Bạn không nên nói chung cần phải gọi phương pháp này trừ khi bạn thay đổi một cách rõ ràng gợi ý kích thước / liên kết của một thành phần sau đó là nhìn thấy được hoặc thay đổi một hệ thống phân cấp ngăn chặn sau khi nó được nhìn thấy.Luôn gọi repaint sau khi xác nhận lại .
làm mất hiệu lực paintComponent (Graphics) Sơn các thành phần. Ghi đè phương pháp này để thực hiện các bức tranh cho các thành phần tùy chỉnh.

 

Phương thức Mục đích
Đối phó với những Containment Hierarchy
Component add (Component) 
Component add (Component, int) 
trống add (Component Object)
Thêm các thành phần quy định để chứa này. Các phiên bản một đối số của phương pháp này cho biết thêm các thành phần vào cuối container. Khi hiện tại, các int luận chỉ ra vị trí các thành phần mới của trong container. Khi có mặt, các đối tượng tham số cung cấp hạn chế bố trí cho người quản lý bố trí hiện tại.
void remove (int) 
trống remove (Component) 
trống RemoveAll ()
Hủy bỏ một hoặc tất cả các thành phần từ các thùng chứa này. Khi hiện tại, các int luận chỉ ra vị trí trong các container của các thành phần để loại bỏ.
JRootPane getRootPane () Lấy cửa sổ gốc có chứa các thành phần.
Container getTopLevelAncestor () Nhận container trên cùng cho các thành phần - một cửa sổ , Applet , hoặc null nếu các thành phần đã không được thêm vào bất kỳ container.
Container getParent () Nhận chứa trực tiếp của thành phần.
int getComponentCount () Lấy số lượng của các thành phần trong container này.
Hợp phần getComponent (int) 
thành phần [] getComponents ()
Lấy một hoặc tất cả các thành phần trong container này. Các int luận chỉ ra vị trí của các thành phần để có được.
Hợp phần getComponentZOrder (int) 
thành phần [] getComponentZOrder ()
Trả về chỉ số z-trật tự của các thành phần bên trong container. Cao hơn một thành phần trong hệ thống phân cấp z-trật tự, thấp hơn chỉ số của nó. Các thành phần với chỉ số z-trật tự thấp nhất được sơn cuối cùng, trên tất cả các thành phần con khác.

 

Phương thức Mục đích
Đặt ra các thành phần
void phương thức setPreferredSize (Dimension) 
trống setMaximumSize (Dimension) 
trống setMinimumSize (Dimension)
Thiết lập của thành phần ưa thích, tối đa, hoặc kích thước tối thiểu, được đo bằng pixel. Các kích thước ưa thích chỉ ra kích thước tốt nhất cho các thành phần. Các thành phần không nên lớn hơn so với kích thước tối đa của nó và không nhỏ hơn kích thước tối thiểu của nó. Hãy nhận biết rằng đây chỉ là những gợi ý và có thể được bỏ qua bởi các nhà quản lý bố trí nhất định.
Kích thước getPreferredSize () 
Kích thước getMaximumSize () 
Kích thước getMinimumSize ()
Lấy ưa thích, tối đa, hoặc kích thước tối thiểu của các thành phần, được đo bằng pixel. Nhiều lớp JComponent có setter và getter phương pháp. Đối với những người không JComponent lớp con, mà không có các phương thức setter tương ứng, bạn có thể thiết lập một thành phần ưa thích, tối đa, hoặc kích thước tối thiểu bằng cách tạo ra một lớp con và trọng các phương pháp này.
void setAlignmentX (float) 
trống setAlignmentY (float)
Thiết lập sự liên kết dọc theo x- hoặc y- trục. Những giá trị này chỉ ra cách các thành phần muốn được liên quan đến các thành phần khác. Các giá trị phải là một số giữa 0 và 1 trong đó 0 đại diện cho sự liên kết cùng nguồn gốc, 1 là liên kết xa nhất đi từ nguồn gốc, và 0,5 là trung tâm, và như vậy. Hãy nhận biết rằng đây chỉ là những gợi ý và có thể được bỏ qua bởi các nhà quản lý bố trí nhất định.
nổi getAlignmentX () 
getAlignmentY float ()
Lấy kết của các thành phần dọc theo x- hoặc y- trục. Đối với phi JComponent lớp con, mà không có các phương thức setter tương ứng, bạn có thể thiết lập sự liên kết của một thành phần bằng cách tạo ra một lớp con và trọng các phương pháp này.
void setLayout (LayoutManager) 
LayoutManager getLayout ()
Đặt hoặc được quản lý bố trí các thành phần. Việc quản lý bố trí chịu trách nhiệm về kích thước và vị trí các thành phần trong một container.
void applyComponentOrientation (ComponentOrientation) trống setComponentOrientation (ComponentOrientation) Đặt ComponentOrientation tài sản của các container này và tất cả các thành phần chứa trong nó. Xem Thiết Định hướng của container để biết thêm thông tin.

 

Phương thức Mục đích
Bắt kích thước và vị trí thông tin
int getWidth () 
int getHeight ()
Lấy chiều hiện tại hoặc chiều cao của các thành phần đo bằng pixel.
Kích thước getSize ()
Kích thước getSize (Dimension)
Nhận kích thước hiện tại của thành phần đo bằng pixel. Khi sử dụng các phiên bản một đối số của phương pháp này, người gọi là chịu trách nhiệm cho việc tạo ra các thước dụ trong đó kết quả được trả về.
int GetX () 
int GetY ()
Lấy hiện tại x hoặc y phối hợp của các thành phần có nguồn gốc liên quan đến góc trên bên trái của cha mẹ đo bằng pixel.
GetBounds Rectangle () 
Rectangle getBounds (hình chữ nhật)
Lấy giới hạn của các thành phần đo bằng pixel. Các giới hạn chỉ định các thành phần của chiều rộng, chiều cao, và nguồn gốc liên quan đến cha mẹ của nó. Khi sử dụng các phiên bản một đối số của phương pháp này, người gọi là chịu trách nhiệm cho việc tạo ra các Rectangle dụ trong đó kết quả được trả về.
Điểm getLocation () 
Điểm getLocation (điểm)
Nhận được vị trí hiện tại của thân nhân các thành phần vào góc trên bên trái của cha mẹ đo bằng pixel. Khi sử dụng các phiên bản một đối số của getLocation phương pháp, người gọi là chịu trách nhiệm cho việc tạo ra các điểm trường, trong đó kết quả được trả về.
Điểm getLocationOnScreen () Trả về vị trí tương đối so với góc trên bên trái của màn hình.
Insets getInsets () Lấy kích thước của biên giới của thành phần.

 

Phương thức Mô tả
Xác định kích thước và vị trí tuyệt đối
void setLocation (int, int) 
void setLocation (điểm)
Thiết lập vị trí của các thành phần, tính theo đơn vị pixel, tương đối so với góc trên bên trái. Hai đối số kiểu int xác định x và y là hoành độ và tung độ. Sử dụng các phương thức này để xác định vị trí một thành phần khi bạn không sử dụng trình quản lý bố cục.
void setSize (int, int) 
void setSize (Dimension)
Thiết lập kích thước của các thành phần đo bằng đơn vị pixel. Hai đối số kiểu int xác định chiều rộng và chiều cao. Sử dụng các phương thức này để xác định kích thước một phần khi bạn không sử dụng trình quản lý bố cục.
void setBounds (int, int, int, int) 
void setBounds (Rectangle)
Thiết lập kích thước và vị trí tương đối của thành phần so với góc trên bên trái của đối tượng chứa, đơn vị là pixel. Bốn đối số lần lượt là xy, chiều rộng, và chiều cao. Sử dụng các phương phương thức này để xác định vị trí và kích thước một thành phần khi bạn không sử dụng trình quản lý bố cục.
» Tiếp: JScrollPane
« Trước: Cách dùng bộ chứa mức top
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!