Tổng hợp các bài viết về Java Swing theo thứ tự từ cơ bản
- 你好的Java Swing
- 的JLabel
- JButton的
- JTextField的
- 的JPanel
- 布局管理器
- 的FlowLayout
- GridLayout的
- BorderLayout的
- 的BoxLayout
- GridBagLayout的
- CardLayout
- SpringLayout中
- 的GroupLayout
- JTextArea trong Java – JTextArea in Java
- JPasswordField trong Java – JPasswordField in Java
- JCheckBox trong Java – JCheckBox in Java
- JRadioButton trong Java – JRadioButton in java
- JComboBox trong Java – JComboBox in Java
- JTabbedPane的在Java中
- Tùy biến JTabbedPane
- JMenu的在Java中
- JToolBar中使用Java
- 边境的java
- JList trong Java – JList in Java
- Tùy biến JList – JList custom renderer
- 的FlowLayout
- GridLayout的
- BorderLayout的
- 的BoxLayout
- GridBagLayout的
- CardLayout
- SpringLayout中
- 的GroupLayout
良好. Thêm cái Table nữa em. Nói thêm về MVC trong nó nữa 😀
Loạt này em đang viết dở chưa xong. Cái table em không định viết vì thấy 1 TUT 9 bài viết ở codesontrang rất hay, định dẫn link về đây.
MVC sẽ có 😀
哈哈, trước anh xem Talbe cũng từ trang đó. 😀
=)) Vâng, tác giả bên đó mà viết tiếp chắc rất nhiều bài hay về java swing =))
không có JScrollPane hả bạn
à, loạt bài này mình đang viết dở, 😀 sẽ cập nhật đủ các đối tượng cơ bản trong thời gian tới nhé!
E chào anh ạ
Anh ơi e muốn hỏi anh chút. Bây giờ e đang muốn làm 1 game giống như đuổi hình bắt chữ trên appStore ấy ạ. Em thiết kế bằng Swing, bây giờ e muốn đưa ra các câu hỏi truy xuất từ cơ sở dữ liệu “từng” câu 1 để cho người chơi trả lời thì e thực hiên như thế nào là được ạ. Em cảm ơn anh nhiều.
Để làm được vậy thì bạn cần kết nối với CSDL của bạn đã. sau đó lấy xuống và load lên frame. Còn việc cho hiển thị từng câu thì bạn dùng 1 vòng lặp thôi. trong vòng lặp bạn cho nó hiện lên, nếu trả lời đúng thì hiện cái tiếp, ko thì thôi.
anh cho e hỏi cái file có đuôi dij sao tạo ra nó vậy anh.
有
anh cho em hoi tai sao cai panelTextFiled set layout(空值) thi textField va label hien thi duoc. con panelButton va panelTable setLayout(空值) thi ko the hien thi duoc vay a.
代码
package Table;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
进口javax.swing.JLabel中;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
进口javax.swing.JButton中;
import javax.swing.JTable;
import javax.swing.BorderFactory;
import javax.swing.border.TitledBorder;
@SuppressWarnings(“串行”)
公共类TableApp扩展的JFrame{
私人的JPanel panelTableApp,panelTableStudent, 面板文本字段, panelButton;
私人的JLabel labelIDStudent, labelNameStudent, labelAddressStudent, labelSelect;
私人的JTextField textFieldIDStudent, textFieldNameStudent, textFieldAddressStudent;
私人的JButton buttonPush, buttonPop, buttonUpdate, buttonSearch;
私人的JTable tableStudent;
私人ModelTableApp模型表学生;
公共TableApp() {
超(“申请表”);
的setSize(600, 750);
调用setVisible(真正);
的setResizable(假);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
的getContentPane().添加(createPanelTableApp());
}
私人的JPanel createPanelTableApp() {
panelTableApp =新JPanel();
panelTableApp.setLayout(空值);
panelTableApp.setBounds(25, 25, 550, 700);
panelTableApp.setBorder(BorderFactory.createTitledBorder(空值, 空值, TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION));
panelTableApp.add(createPanelTextField());
panelTableApp.add(createPanelButton());
panelTableApp.add(createPanelTableStudent());
返回panelTableApp;
}
私人的JPanel createPanelTextField() {
文本框面板=新JPanel();
panelTextField.setLayout(空值);
panelTextField.setBounds(25, 25, 550, 250);
panelTextField.setBorder(BorderFactory.createTitledBorder(空值, 空值,TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION));
panelTextField.add(createLabelIDStudent());
panelTextField.add(createLabelNameStudent());
panelTextField.add(createLabelAddressStudent());
panelTextField.add(createTextFieldIDStudent());
panelTextField.add(createTextFieldNameStudent());
panelTextField.add(createTextFieldAddressStudent());
返回面板文本字段;
}
私人的JPanel createPanelButton() {
panelButton =新JPanel();
panelButton.setLayout(新的网格布局(1, 1, 25, 1));
panelButton.setBounds(25, 300, 550, 35);
panelButton.setBorder(BorderFactory.createTitledBorder(空值, 空值,TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION));
panelButton.add(createButtonPush());
panelButton.add(createButtonPop());
panelButton.add(createButtonUpdate());
panelButton.add(createButtonSearch());
返回panelButton;
}
私人的JPanel createPanelTableStudent() {
panelTableStudent =新JPanel();
panelTableStudent.setLayout(新的网格布局());
panelTableStudent.setBounds(25, 360, 550, 350);
panelTableStudent.setBorder(BorderFactory.createTitledBorder(空值, 空值, TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION));
panelTableStudent.add(新JScrollPane的(createTableStudent()));
返回panelTableStudent;
}
私人的JLabel createLabelIDStudent() {
labelIDStudent =新的JLabel(“ID”);
labelIDStudent.setBounds(25, 35, 75, 25);
返回labelIDStudent;
}
私人的JLabel createLabelNameStudent() {
labelNameStudent =新的JLabel(“名字”);
labelNameStudent.setBounds(25, 115, 75, 25);
返回labelNameStudent;
}
私人的JLabel createLabelAddressStudent() {
labelAddressStudent =新的JLabel(“地址”);
labelAddressStudent.setBounds(25, 190, 75, 25);
返回labelAddressStudent;
}
私人的JTextField createTextFieldIDStudent() {
textFieldIDStudent =新的JTextField();
textFieldIDStudent.setBounds(125, 25, 375, 50);
返回textFieldIDStudent;
}
私人的JTextField createTextFieldNameStudent() {
textFieldNameStudent =新的JTextField();
textFieldNameStudent.setBounds(125, 100, 375, 50);
返回textFieldNameStudent;
}
私人的JTextField createTextFieldAddressStudent() {
textFieldAddressStudent =新的JTextField();
textFieldAddressStudent.setBounds(125, 175, 375, 50);
返回textFieldAddressStudent;
}
私人的JButton createButtonPush() {
buttonPush =的新的JButton(“推”);
buttonPush.setBounds(125, 250, 75, 25);
返回buttonPush;
}
私人的JButton createButtonPop() {
buttonPop =的新的JButton(“流行的”);
返回buttonPop;
}
私人的JButton createButtonUpdate() {
buttonUpdate =的新的JButton(“更新”);
返回buttonUpdate;
}
私人的JButton createButtonSearch() {
buttonSearch =的新的JButton(“搜索”);
返回buttonSearch;
}
私人的JTable createTableStudent() {
tableStudent =新的JTable();
tableStudent.setModel(createModelTableStudent());
return tableStudent;
}
private ModelTableApp createModelTableStudent() {
modelTableStudent = new ModelTableApp();
return modelTableStudent;
}
public static void build() {
new TableApp();
}
}
Em cho cái lệnh setVisible(真正); xuống cuối hàm nhé.
bài học rất bổ ích ạ. e đang học theo.
cảm ơn anh. mong anh làm thật nhiều dạng ntn để bọn e tham khảo 😀
<3
bác có bài hd về MVC ko? e xin với…đang cần….tks bác!
Rất tiếc là không bạn ah.
Anh cho em hỏi có video nào để học cách kéo thả giao diện với windowBuilder không ạ.
Cái nàu a ko.
có phần mềm lập trình java ko
mấy anh lập trình bằng gì
xin link download với
Bạn có thể dùng eclipse hoặc netbean. Bạn lên google srach là khối 😉
chào anh ạ. Em cũng mới học về ngôn ngữ java . Trên lớp có giao 1 bt làm 1 ứng dụng từ điển = ngôn ngữ java . Anh cho em hỏi nếu muốn thiết kế 1 cái giao diện từ điển thì cần phải học những bài nào trong số các bài trên ạ ?? Tại e có ko nh tg lắm nên tạm thời chắc ko học hết đc @@
Cái này tùy thuộc vào mức độ và cách tạo giao diện của bạn gồm những gì. Nói chung cần gì thì search đó 🙂
đại loại giao diện chỉ cần chỗ nhập từ và tùy chọn chỉnh Anh-Việt , Việt-Anh thôi ạ