帮小妹看看这个是什么问题?或你有更好方法解决(谁的方法最好,我会把100分直接送你))
import java.awt.BorderLayout;import java.awt.EventQueue;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.DefaultCellEditor;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableColumnModel;public class Test extends JFrame { private JTable table; private DefaultTableModel cardModel; /** * Launch the application * @param args */ public static void main(String args[]) { EventQueue.invokeLater(new Runnable() { public void run() { try { Test frame = new Test(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame */ public Test() { super(); setBounds(100, 100, 500, 375); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JScrollPane scrollPane = new JScrollPane(); getContentPane().add(scrollPane, BorderLayout.CENTER); table = new JTable(); scrollPane.setViewportView(table); // initTable(); tableVal(); table.addMouseListener(new MouseSelect()); } private void initTable(){ cardModel = new DefaultTableModel(6,3); table.setModel(cardModel); table.getColumnModel().getColumn(0).setHeaderValue("1"); table.getColumnModel().getColumn(1).setHeaderValue("2"); table.getColumnModel().getColumn(2).setHeaderValue("3"); table.setRowHeight(25); } public void tableVal() { String[] content={"性别","星期"}; JComboBox contentType = new JComboBox(); for(int i=0;i<content.length;i++){ contentType.addItem(content[i]); } DefaultCellEditor contentcell = new DefaultCellEditor(contentType); TableColumnModel tcm = table.getColumnModel(); tcm.getColumn(0).setCellEditor(contentcell); } private class MouseSelect implements MouseListener { @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub Object target = e.getSource(); if (target instanceof JTable) { int row=table.getSelectedRow(); int col=table.getSelectedColumn(); String name=table.getValueAt(row, col).toString(); if(col==0){ if(name.equals("性别")){ String[] data={"男","女"}; JComboBox dataBox = new JComboBox(); for(int i=0;i<data.length;i++){ dataBox.addItem(data[i]); } DefaultCellEditor dataCell = new DefaultCellEditor(dataBox); TableColumnModel dataTcm = table.getColumnModel(); dataTcm.getColumn(1).setCellEditor(dataCell); } if(name.equals("星期")){ String[] date={"星期1","星期2","星期3","星期4"}; JComboBox dateBox = new JComboBox(); for(int i=0;i<date.length;i++){ dateBox.addItem(date[i]); } DefaultCellEditor dateCell = new DefaultCellEditor(dateBox); TableColumnModel dateTcm = table.getColumnModel(); dateTcm.getColumn(1).setCellEditor(dateCell); } } } } @Override public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } } }
dataBox.setSelectedItem(1);try { Thread.sleep(1000); table.repaint(); } catch (InterruptedException e1) { //e1.printStackTrace(); }
[解决办法]
接分的
[解决办法]
一般女生发的帖子回复率是最高的
[解决办法]
package ui;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.DefaultCellEditor;import javax.swing.DefaultComboBoxModel;import javax.swing.GroupLayout;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.WindowConstants;import javax.swing.table.TableColumnModel;public class Test extends JFrame implements ActionListener{ private static final long serialVersionUID = 1L; private JButton btnAdd; private JButton btnDel; private JScrollPane splT; private JTable tblMain; private JComboBox contentType; private JComboBox cboItem; private String[] content; private String[] sex; private String[] weekDay; private TableModel myModel; TableColumnModel tcm; public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Test().setVisible(true); } }); } public Test() { initComponents(); } private void initComponents() { String[] headText={"Title","Item"}; myModel=new TableModel(headText); splT = new JScrollPane(); tblMain = new JTable(myModel); btnAdd = new JButton("Add"); btnDel=new JButton("Delete"); btnAdd.addActionListener(this); btnDel.addActionListener(this); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); splT.setViewportView(tblMain); content=new String[]{"性别","星期"}; sex=new String[]{"女","男"}; weekDay=new String[]{"星期1","星期2","星期3","星期4","星期5","星期6","星期7"}; contentType = new JComboBox(content); cboItem=new JComboBox(); tcm = tblMain.getColumnModel(); tcm.getColumn(0).setCellEditor(new DefaultCellEditor(contentType)); tcm.getColumn(1).setCellEditor(new DefaultCellEditor(cboItem)); contentType.addActionListener(this); GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); GroupLayout.SequentialGroup one=layout.createSequentialGroup(); one.addComponent(btnDel); one.addComponent(btnAdd); GroupLayout.SequentialGroup two=layout.createSequentialGroup(); two.addComponent(splT); GroupLayout.ParallelGroup ot=layout.createParallelGroup(); ot.addGroup(two); ot.addGroup(GroupLayout.Alignment.TRAILING, one); layout.setHorizontalGroup(ot); GroupLayout.ParallelGroup btnRow=layout.createParallelGroup(); btnRow.addComponent(btnDel); btnRow.addComponent(btnAdd); GroupLayout.SequentialGroup c1=layout.createSequentialGroup(); c1.addGroup(btnRow); c1.addComponent(splT,188, 188,Short.MAX_VALUE); GroupLayout.ParallelGroup c2=layout.createParallelGroup(); c2.addGroup(c1); layout.setVerticalGroup(c2); pack(); } @Override public void actionPerformed(ActionEvent e) { Object target=e.getSource(); String[] content={null,null}; if(target.equals(btnAdd)){ myModel.addRow(content); tblMain.updateUI(); } else if(target.equals(contentType)){ String type=(String) contentType.getSelectedItem(); if(null!=type){ if(type.equals("性别")){ cboItem.removeAllItems(); cboItem.setModel(new DefaultComboBoxModel(sex)); } else if(type.equals("星期")){ cboItem.removeAllItems(); cboItem.setModel(new DefaultComboBoxModel(weekDay)); } } } else if(target.equals(btnDel)){ myModel.removeRow(tblMain.getSelectedRow()); tblMain.updateUI(); } }}
[解决办法]
看上去我的布局有点麻烦 但是这种布局其实挺好的 因为那是自动化的 其次 虽然一点小功能就写个模板类有点小题大作 但是我相信 要用table的话 总有一天要这样做的 希望对妹子有点帮助
[解决办法]
一句小妹,都冲动了~~~~
[解决办法]
package com.esen.chenf.test;import java.awt.BorderLayout;import java.awt.EventQueue;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.DefaultCellEditor;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.event.CellEditorListener;import javax.swing.event.ChangeEvent;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableColumnModel;public class Test23 extends JFrame { private JTable table; private DefaultTableModel cardModel; /** * Launch the application * @param args */ public static void main(String args[]) { EventQueue.invokeLater(new Runnable() { public void run() { try { Test23 frame = new Test23(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame */ public Test23() { super(); setBounds(100, 100, 500, 375); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JScrollPane scrollPane = new JScrollPane(); getContentPane().add(scrollPane, BorderLayout.CENTER); table = new JTable(); scrollPane.setViewportView(table); // initTable(); tableVal(); // table.addMouseListener(new MouseSelect()); } private void initTable() { cardModel = new DefaultTableModel(6, 3); table.setModel(cardModel); table.getColumnModel().getColumn(0).setHeaderValue("1"); table.getColumnModel().getColumn(1).setHeaderValue("2"); table.getColumnModel().getColumn(2).setHeaderValue("3"); table.setRowHeight(25); } public void tableVal() { String[] content = { "性别", "星期" }; JComboBox contentType = new JComboBox(); for (int i = 0; i < content.length; i++) { contentType.addItem(content[i]); } DefaultCellEditor contentcell = new DefaultCellEditor(contentType); contentcell.addCellEditorListener(new MouseSelect()); TableColumnModel tcm = table.getColumnModel(); tcm.getColumn(0).setCellEditor(contentcell); } private class MouseSelect implements CellEditorListener { public void editingCanceled(ChangeEvent e) { } public void editingStopped(ChangeEvent e) { Object target = e.getSource(); if (target instanceof DefaultCellEditor) { int row = table.getSelectedRow(); int col = table.getSelectedColumn(); String name = ""; try { name = table.getValueAt(row, col).toString(); } catch (Exception e1) { } if (col == 0) { if (name.equals("性别")) { String[] data = { "男", "女" }; JComboBox dataBox = new JComboBox(); for (int i = 0; i < data.length; i++) { dataBox.addItem(data[i]); } DefaultCellEditor dataCell = new DefaultCellEditor(dataBox); TableColumnModel dataTcm = table.getColumnModel(); dataTcm.getColumn(1).setCellEditor(dataCell); } if (name.equals("星期")) { String[] date = { "星期1", "星期2", "星期3", "星期4" }; JComboBox dateBox = new JComboBox(); for (int i = 0; i < date.length; i++) { dateBox.addItem(date[i]); } DefaultCellEditor dateCell = new DefaultCellEditor(dateBox); TableColumnModel dateTcm = table.getColumnModel(); dateTcm.getColumn(1).setCellEditor(dateCell); } } } } } public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub }}