JButton, JLabel, JTextField, JCheckBox, JRadioButton, and
JComboBox.
Each GUI component class provides several constructors that
you can use to create GUI component objects.
36 trang |
Chia sẻ: lylyngoc | Lượt xem: 1516 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Lập trình java cơ sở dữ liệu Bài 3 Components, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
LẬP TRÌNH JAVA CSDL
BÀI 3
COMPONENTS
Nguyễn Hữu Thể
2
Nội dung
JLabel
JButton
JTextField
JCheckBox
JRadioButton
JPanel
JComboBox, JList
JTable
JMenu
JToolBar
JOptionPane
JFileChooser
GUI Components
JButton, JLabel, JTextField, JCheckBox, JRadioButton, and
JComboBox.
Each GUI component class provides several constructors that
you can use to create GUI component objects.
3
GUI Components
// Create a button with text OK
JButton btOK = new JButton("OK");
// Create a label with text "Enter your name: "
JLabel lbName = new JLabel("Enter your name: ");
// Create a text field with text "Type Name Here"
JTextField txtName = new JTextField("Type Name Here");
// Create a check box with text bold
JCheckBox chkBold = new JCheckBox("Bold");
// Create a radio button with text red
JRadioButton rbRed = new JRadioButton("Red");
// Create a combo box with choices red, green, blue
JComboBox cboColor = new JComboBox(new String[]{"Red",
"Green", "Blue"});
4
Working with Components
javax.swing.Jcomponent
Several methods:
setEnabled(boolean): receive user input (an argument of
true) or is inactive and cannot receive input (false).
Components are enabled by default.
isEnabled() returns a boolean value.
setVisible(boolean): for all components. Use true to display
a component and false to hide it.
isVisible()
setSize(int, int): width and height specified as arguments
setSize(Dimension) uses a Dimension
getSize(): returns a Dimension object with height and width
5
Working with Components
setText()
getText()
setValue() and getValue() for components that store a
numeric value.
6
JLabel
Display Text, not editable
Constructor:
Label() : An empty label
JLabel(String) : A label with the specified text
JLabel(String, int) : A label with the specified text and
alignment LEFT, CENTER, and RIGHT.
JLabel(String, Icon, int) : A label with the specified
text, icon, and Alignment
7
JLabel
Common Methods:
void setFont (Font f)
void setText(String S)
String getText()
void setIcon(Icon)
8
JLabel
Example:
JLabel lbl=new JLabel("Họ và tên:");
JLabel lbl=new JLabel("Ngày sinh:");
9
JLabel
The use of HTML is supported by most Swing components.
Example: use HTML markup to create multiline and multifont
labels:
JLabel lbHoten = new JLabel("Dòng 1<p
style=\"color:red;font-size:20\">Dòng
2");
10
JTextField
Display data, Input data
Constructors
JTextField(): An empty text field
JTextField(int): A text field with the specified width
JTextField(String): A text field with text
JTextField(String, int): A text field with the specified text
and width
Common Methods
void setText(String S)
String getText()
void setEditable(boolean b)
boolean isEditable()
JTextField
Example
setLayout(new FlowLayout());
JLabel lbHoten = new JLabel("Nhập họ và tên");
add(lbHoten);
JTextField txtHoten = new JTextField(20);
add(txtHoten);
JTextField
Don’t allow input data
txtHoten.setEditable(false)
To set Text in code behind for JTextField
txtHoten.setText("Hello world");
To get Text from JTextField
String s = txtHoten.getText();
We could convert data
int n = Integer.parseInt(s); //s is String
double d = Double.parseDouble(s);
float f = Float.parseFloat(s);
To set focus:
txtHoten.requestFocus();
JPasswordField
Hide the characters a user is typing into the field.
JPasswordField class, a subclass of JTextField.
JPasswordField constructor methods take the same arguments as
those of its parent class.
Methods:
JPasswordField(String text, int columns)
char[] getPassword(): returns the text contained in this
password field
JPasswordField
setEchoChar(char): replacing each input character with the
specified character
JPasswordField pass = new JPasswordField(20);
pass.setEchoChar('#');
JTextArea
Input is more than one line long
Constructors
JTextArea(): Create a default text area.
JTextArea(int rows, int columns): Create a text area
with the specified number of rows and columns.
JTextArea(String text)
JTextArea(String text, int rows, int columns)
JTextArea(Document doc): Create a text area that uses the
specified Document.
JTextArea(Document doc, String text, int rows, int
columns)
JTextArea
Common methods
void append(String str)
Append the given text to the end of the document.
void insert(String str, int pos)
Insert the specified text at the given position . To insert text
at the beginning of the document, use a position of 0.
void replaceRange(String str, int start, int
end)
Replace a section of the document
JTextArea
public int getLineStartOffset(int line)
throws BadLocationException
Return the character offset (from the beginning) that marks
the beginning of the specified line number.
public int getLineEndOffset(int line) throws
BadLocationException
Return the character offset (from the beginning) that marks
the end of the specified line number. This is actually the
offset of the first character of the next line.
public int getLineOfOffset(int offset) throws
BadLocationException
Return the line number that contains the given character
offset (from the beginning of the document).
JTextArea
JPanel contentPane = new JPanel();
JLabel lblNewLabel = new JLabel("Nhập dữ liệu:");
contentPane.add(lblNewLabel);
JTextArea textArea = new JTextArea(3,15);
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
JScrollPane scrollPane = new JScrollPane(textArea);
contentPane.add(scrollPane);
JTextArea
class MyJTextArea extends JFrame {
private JPanel contentPane;
public MyJTextArea() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 257, 128);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
JLabel lblNewLabel = new JLabel("Nhập dữ liệu:");
contentPane.add(lblNewLabel);
JScrollPane scrollPane = new JScrollPane();
JTextArea textArea = new JTextArea(3,15);
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
scrollPane.setViewportView(textArea);
contentPane.add(scrollPane);
}
}
JButton
JButton()
Creates a button with no set text or icon.
JButton(Action a)
Creates a button where properties are taken from the Action
supplied.
JButton(Icon icon)
Creates a button with an icon.
JButton(String text)
Creates a button with text.
JButton(String text, Icon icon)
Creates a button with initial text and an icon.
JButton
AccessibleContext getAccessibleContext()
Gets the AccessibleContext associated with this
JButton.
String getUIClassID()
Returns a string that specifies the name of the L&F
class that renders this component.
boolean isDefaultButton()
Gets the value of the defaultButton property, which if
true means that this button is the current default
button for its JRootPane.
boolean isDefaultCapable()
Gets the value of the defaultCapable property.
protected String paramString()
Returns a string representation of this JButton.
JButton
void removeNotify()
Overrides JComponent.removeNotify to check if this button is
currently set as the default button on the RootPane, and if so,
sets the RootPane's default button to null to ensure the
RootPane doesn't hold onto an invalid button reference.
void setDefaultCapable(boolean defaultCapable)
Sets the defaultCapable property, which determines whether
this button can be made the default button for its root pane.
void updateUI()
Resets the UI property to a value from the current look and feel.
JButton
24
It is very important, attach event to do something that you want.
JButton bt=new JButton("Watch");
bt.setIcon(new ImageIcon("mywatch.png"));
bt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0)
{
//do something here coding here
}
}); Add event for this button
bt.setMnemonic('W'); Alt+W to call bt command
JButton
JRadioButton
JRadioButton() Creates an initially unselected radio button with
no set text.
JRadioButton(Action a) Creates a radiobutton where properties
are taken from the Action supplied.
JRadioButton(Icon icon) Creates an initially unselected radio
button with the specified image but no text.
JRadioButton(Icon icon, boolean selected) Creates a radio button
with the specified image and selection state, but no text.
JRadioButton(String text) Creates an unselected radio button
with the specified text.
JRadioButton(String text, boolean selected)
JRadioButton(String text, Icon icon) Creates a radio button that
has the specified text and image, and that is initially unselected.
JRadioButton(String text, Icon icon, boolean selected)
JRadioButton - Methods
Modifier and Type Method and Description
AccessibleContext getAccessibleContext()Gets the
AccessibleContext associated with this
JRadioButton.
String getUIClassID()Returns the name of the L&F
class that renders this component.
protected String paramString()Returns a string
representation of this JRadioButton.
void updateUI()Resets the UI property to a value
from the current look and feel.
JRadioButton
28
Make single choice
Must add JRadioButton into the ButtonGroup
if(radio.isSelected())
{
}
JRadioButton
29
ButtonGroup & JRadioButton
JPanel panelGroup=new JPanel();
panelGroup.setLayout(new BoxLayout(panelGroup, BoxLayout.Y_AXIS));
TitledBorder titlebor=new TitledBorder("Ý kiến của bạn:");
panelGroup.setBorder(titlebor);
JRadioButton rad1=new JRadioButton("Lập trình Java rất dễ");
JRadioButton rad2=new JRadioButton("Design GUI Java rất dễ");
JRadioButton rad3=new JRadioButton("Viết web trên Java rất dễ");
JRadioButton rad4=new JRadioButton("Tất cả đều khó");
ButtonGroup group=new ButtonGroup();
group.add(rad1);group.add(rad2);
group.add(rad3);group.add(rad4);
panelGroup.add(rad1);panelGroup.add(rad2);
panelGroup.add(rad3);panelGroup.add(rad4);
add(panelGroup);
JRadioButton & ButtonGroup
30
Create Border with title:
Border bor=BorderFactory.createLineBorder(Color.RED);
TitledBorder titlebor=new TitledBorder(bor,"Ý kiến của bạn:");
panelGroup.setBorder(titlebor);
Define a buttongroup to add all radio:
ButtonGroup group=new ButtonGroup();
group.add(rad1);
And add all Radio into the pnGroup:
panelGroup.add(rad1);
Add panelGroup into the Window:
add(panelGroup);
Checkbox
JCheckBox() Creates an initially unselected check box button with no
text, no icon.
JCheckBox(Action a) Creates a check box where properties are taken
from the Action supplied.
JCheckBox(Icon icon) Creates an initially unselected check box with
an icon.
JCheckBox(Icon icon, boolean selected) Creates a check box with an
icon and specifies whether or not it is initially selected.
JCheckBox(String text) Creates an initially unselected check box with
text.
JCheckBox(String text, boolean selected)
JCheckBox(String text, Icon icon)
JCheckBox(String text, Icon icon, boolean selected)
Checkbox
Make multi choice
Set grid layout 2 rows and 2 column
pnCheck.setLayout(new GridLayout(2, 2));
Create JCheckBox:
JCheckBox chk1=new JCheckBox("Java");
Add chk1 into the pnCheck:
pnCheck.add(chk1);
Add pnCheck into the Window:
add(pnCheck);
BorderFactory.createEtchedBorder(Color.BLUE, Color.RED);
Create border with 2 color: Blue, Red:
if(chk1.isSelected())
{
//do something
}
Checkbox
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 200, 150);
panelCheck=new JPanel();
panelCheck.setLayout(new GridLayout(2, 2));
Border bor2=BorderFactory.createEtchedBorder(Color.BLUE,
Color.RED);
TitledBorder titlebor2=new TitledBorder(bor2, "Môn học yêu
thích:");
panelCheck.setBorder(titlebor2);
JCheckBox chk1=new JCheckBox("C/C++");
JCheckBox chk2=new JCheckBox("C#");
JCheckBox chk3=new JCheckBox("PHP");
JCheckBox chk4=new JCheckBox("Java");
panelCheck.add(chk1);panelCheck.add(chk2);
panelCheck.add(chk3);panelCheck.add(chk4);
add(panelCheck);
JComboBox
JComboBox() Creates a JComboBox with a default data model.
JComboBox(ComboBoxModel aModel) Creates a JComboBox
that takes its items from an existing ComboBoxModel.
JComboBox(E[] items) Creates a JComboBox that contains the
elements in the specified array.
JComboBox(Vector items) Creates a JComboBox that contains
the elements in the specified Vector.
JComboBox
JComboBox cbo=new JComboBox();
cbo.addItem("Xuất sắc");
cbo.addItem("Giỏi");
cbo.addItem("Khá");
cbo.addItem("Trung bình");
add(cbo);
String arr[]={"Xuất sắc" ,"Giỏi" ,"Khá","Trung bình"};
JComboBox cbo=new JComboBox(arr);
add(cbo);
JComboBox
int n=cbo.getSelectedIndex();
n is position that we selected
Object o=cbo.getSelectedItem();
We could cast object to valid another type
cbo.setSelectedIndex(-1);
To clear selection