Tổng hợp các bài viết về Java Swing theo thứ tự từ cơ bản
- Hello Java Swing
- JLabelの
- JButtonの
- JTextFieldを
- JPanelの
- Layout Managers
- 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
- JavaでJTabbedPaneの
- Tùy biến JTabbedPane
- JavaでJMenuの
- JavaでJToolBarは
- ボーダーtrongのJava
- JList trong Java – JList in Java
- Tùy biến JList – JList custom renderer
- FlowLayoutの
- GridLayoutの
- BorderLayoutの
- BoxLayout
- GridBagLayout
- CardLayout
- SpringLayout
- GroupLayout
Good. 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ó 😀
Haha, 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.
がある
彼は私がレイアウトルールを設定してみましょう、なぜ尋ねpanelTextFiled(ヌル) 実装とラベル表示のTextField. コンパネルボタンVAパネルテーブルsetLayoutの(ヌル) 試験ボローaを表示されません.
コード
パッケージ表;
輸入java.awt.event.ActionEvent;
輸入java.awt.event.ActionListener;
輸入java.awt.BorderLayout;
インポートのjava.awt.Component;
輸入java.awt.FlowLayout;
輸入java.awt.GridLayout;
輸入javax.swing.JFrame;
輸入javax.swing.JPanel;
輸入javax.swing.JLabel;
輸入javax.swing.JScrollPaneの;
輸入javax.swing.JTextField;
輸入javax.swing.JButtonの;
輸入javax.swing.JTableの;
輸入javax.swing.BorderFactory;
輸入javax.swing.border.TitledBorderの;
@SuppressWarnings(“シリアル”)
パブリッククラスTableAppはJFrameのを拡張{
プライベートJPanelのpanelTableApp,パネルテーブルの学生, パネルテキストフィールド, ボタンパネル;
プライベートJLabelのlabelIDStudent, labelNameStudent, ラベルアドレス学生, labelSelect;
プライベートJTextFieldのtextFieldIDStudent, テキストフィールド名の学生, テキストフィールドのアドレス学生;
プライベート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() {
ボタンパネル=新しいJPanelの();
panelButton.setLayout(新しいGridLayoutの(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());
戻るボタンパネル;
}
プライベートJPanelのcreatePanelTableStudent() {
パネルテーブルの学生=新しいJPanelの();
panelTableStudent.setLayout(新しいGridLayoutの());
panelTableStudent.setBounds(25, 360, 550, 350);
panelTableStudent.setBorder(BorderFactory.createTitledBorder(ヌル, ヌル, TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION));
panelTableStudent.add(新しいJScrollPaneの(createTableStudent()));
リターンパネルテーブルの学生;
}
プライベート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);
テキストフィールド名の学生を返します;
}
プライベートJTextFieldのcreateTextFieldAddressStudent() {
textFieldAddressStudent =新しいJTextFieldを();
textFieldAddressStudent.setBounds(125, 175, 375, 50);
リターンのTextFieldアドレス学生;
}
プライベート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 ạ