Image Icon
- Provide 2 icons for radio buttons, 20x20 pixels
- Create a package / folder icon in the src (sourch packages) folder, and save it in the packages icon
Download Icon HERE
Create Java Class
Example : jMetroTexfield.java
Import
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.border.Border;
public class jMetroTexfield extends JTextField implements ComponentListener {
private final JButton button = new JButton();//X
private Color borderColor = new Color(0,102,255);
//icon X
private ImageIcon iconBlack = new ImageIcon(getClass().getResource("/icon/metro_x_r.png"));
private ImageIcon iconWhite = new ImageIcon(getClass().getResource("/icon/metro_x_w.png"));
private boolean xBlackIcon = true;
private final Dimension dimension = new Dimension(300, 35);//ukuran textfiled
//tinggi button
private int heightBtn = dimension.height - 10;
@SuppressWarnings("LeakingThisInConstructor")
public jMetroTexfield() {
setSize(dimension);
setPreferredSize(dimension);
setOpaque(false);
setBackground(new Color(0, 0, 0, 0));
setForeground(Color.black);
setFont(new Font("Segoe UI",Font.PLAIN,12));
//properties button
button.setText("");
button.setBorderPainted(false);
button.setContentAreaFilled(false);
button.setMargin(new Insets(1, 1, 1, 1));
button.setVisible(true);
button.setFocusPainted(false);
button.setCursor(new Cursor(Cursor.HAND_CURSOR));
add(button);
setVisible(true);
addComponentListener(this);
setSelectionColor(button.getBackground());
updateButton();
button.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
((JTextField) button.getParent()).setText("");
}
@Override
public void mousePressed(MouseEvent e) {/*...*/
}
@Override
public void mouseReleased(MouseEvent e) {/*...*/
}
@Override
public void mouseEntered(MouseEvent e) {
button.setOpaque(true);
button.setIcon((xBlackIcon) ? iconBlack : iconWhite);
}
@Override
public void mouseExited(MouseEvent e) {
button.setOpaque(false);
button.setIcon(null);
}
});
}
public boolean isxDarkIcon() {
return xBlackIcon;
}
public void setxDarkIcon(boolean xDarkIcon) {
this.xBlackIcon = xDarkIcon;
}
public Color getBotonColor() {
return button.getBackground();
}
public void setBotonColor(Color botonColor) {
button.setBackground(botonColor);
setSelectionColor(button.getBackground());
}
public Color getBorderColor() {
return borderColor;
}
public void setBorderColor(Color borderColor) {
this.borderColor = borderColor;
updateBorder();
}
//update properties TextField
private void updateBorder() {
Border border = BorderFactory.createLineBorder(borderColor, 1);
setBorder(BorderFactory.createCompoundBorder(border,
BorderFactory.createEmptyBorder(5, 5, 5, button.getSize().width + 2)));
}
//Sesuaikan dimensi dan posisi button X.
private void updateButton() {
//ukuran button
heightBtn = this.getSize().height - 10;
button.setSize(new Dimension(heightBtn, heightBtn));
button.setPreferredSize(new Dimension(heightBtn, heightBtn));
//posisi
button.setLocation(getWidth() - button.getWidth() - 5, 5);
updateBorder();
}
@Override
public void componentResized(ComponentEvent e) {
updateButton();
}
@Override
public void componentMoved(ComponentEvent e) {/*...*/}
@Override
public void componentShown(ComponentEvent e) {/*...*/}
@Override
public void componentHidden(ComponentEvent e) {/*...*/}
}Clean and Build
Right click java project, select clean and build




0 Komentar