在线坐等!!!最近领导让做一个客户端 前台用Swing 小弟遇到点麻烦 以前没用过Swing 菜鸟一个
现在出现的一个请稍等的页面,我想等后台运行完了之后把整个页面全都替换掉 替换成一个复选框列表,可是不知道怎么回事,每次执行的时候直接没有请稍等这个页面了。。。在线坐等啊
顺便再问下如何加载一个复选框 复选框中有几列
公司网速过慢 无法上传图片 在此上传代码让大家看看怎么办
/**
*
*/
package com.viathink.lims.comparison.view;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import com.viathink.lims.comparison.service.impl.ComparisonServiceImpl;
/**
* @author zhihua
*
*/
public class ComparedInitialView extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private static ComparisonServiceImpl comparisonServiceImpl = new ComparisonServiceImpl();
JTextField codisPathText;
JComboBox lowerLimitComboBox;
JComboBox upperLimitComboBox;
JButton importBtn;
JTable jt = new JTable();
JScrollPane resultScrollPane = new JScrollPane(jt);
ComparedResultList maskPane = new ComparedResultList(resultScrollPane, false);
JPanel panel = new JPanel();
JCheckBox confirmedNotification = new JCheckBox();
List<Map<String, Object>> notificationList = new ArrayList<Map<String,Object>>();
JScrollPane notificationScrollPane = new JScrollPane(confirmedNotification);
BulletinList comparedResultList = new BulletinList(notificationScrollPane, notificationList);
Map<String,String> userMap;
public ComparedInitialView() {
super("aaa");
int screenw = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int screenh = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
setSize(screenw - 10, screenh - 30);
setLocation(2,0);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//将窗口设置为不可改变大小
// setResizable(false);
init();
validate();
// addWindowListener(new WindowAdapter(){
// public void windowClosing(WindowEvent e){
// System.exit(0);
// }
// });
}
private void init() {
panel.setLayout(new BorderLayout());
JPanel fileSelectPanel = new JPanel();
fileSelectPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
codisPathText = new JTextField(30);
importBtn = new JButton();
importBtn.setText("开始比对");
String[] lowerLimit = {"6","7","8","9","10","11","12","13","14","15"};
lowerLimitComboBox = new JComboBox(lowerLimit);
lowerLimitComboBox.setEditable(false);//combobox设为可编辑
lowerLimitComboBox.setSelectedIndex(0);
String[] upperLimit = {"无容差", "容差半对","容差一对","容差两对","容差三对"};
upperLimitComboBox = new JComboBox(upperLimit);
upperLimitComboBox.setEditable(false);//combobox设为可编辑
upperLimitComboBox.setSelectedIndex(0);
fileSelectPanel.add(lowerLimitComboBox);
fileSelectPanel.add(upperLimitComboBox);
fileSelectPanel.add(importBtn);
lowerLimitComboBox.addActionListener(this);
upperLimitComboBox.addActionListener(this);
importBtn.addActionListener(this);
fileSelectPanel.setLocation(0, 15);
panel.add(fileSelectPanel, BorderLayout.NORTH);
panel.add(maskPane, BorderLayout.CENTER);
getContentPane().add(panel);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == importBtn){
if(lowerLimitComboBox.getSelectedItem().equals("") || lowerLimitComboBox.getSelectedItem().equals("请选择匹配下线")){
JOptionPane.showMessageDialog(null, "请选择匹配下线数!!!");
}else if(upperLimitComboBox.getSelectedItem().equals("") || upperLimitComboBox.getSelectedItem().equals("请选择容差上线")){
JOptionPane.showMessageDialog(null, "请选择容差上线数!!!");
}else{
final int lowerLimit = Integer.parseInt(lowerLimitComboBox.getSelectedItem().toString());
int selectedUpperDiffLimit = upperLimitComboBox.getSelectedIndex();
int upperLimit = 0;
switch(selectedUpperDiffLimit){
default:
case 0:
upperLimit = 0;
break;
case 1:
upperLimit = 1;
break;
case 2:
upperLimit = 2;
break;
case 3:
upperLimit = 4;
break;
case 4:
upperLimit = 6;
break;
}
final int upperLimitVal = upperLimit;
// comparisonServiceImpl.getUserList(Integer.parseInt(lowerLimitComboBox.getSelectedItem().toString()),Integer.parseInt(upperLimitComboBox.getSelectedItem().toString()));
try {
maskPane.setMask(true);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// List<Map<String, Object>> notificationList = comparisonServiceImpl.getUserList(lowerLimit,upperLimitVal);
List<Map<String, Object>> notificationList = new ArrayList<Map<String,Object>>();
maskPane.setMask(false);
if(notificationList.size() == 0){
panel.add(notificationScrollPane, BorderLayout.CENTER);
comparedResultList.setMask(true);
}else{
comparedResultList.setMask(false);
}
}
});
} catch (Exception e2) {
// TODO: handle exception
}
}
}
}
@SuppressWarnings({ "unchecked" })
public void generateResultTable(List<Map<String,Object>> paramList){
String[] titles = new String[]{
"codis文件名", "样本总数", "样本实验室编号", "导入状态"
};
List<Map<String,Object>> resultList = new ArrayList<Map<String,Object>>();
Map<String,Object> temp = null;
int totalLines = 0;
for(Map<String,Object> resultMap : paramList) {
temp = new HashMap<String,Object>();
String fileName = resultMap.get("codisFileName").toString();
int totalSamples = ((Integer)resultMap.get("totalSamples")).intValue();
totalLines += totalSamples;
temp.put("fileName", fileName);
temp.put("totlaSamples", totalSamples);
List<String> failedList = (List<String>) resultMap.get("failedList");
if(failedList != null && failedList.size() > 0){
temp.put("failedList", failedList);
}
List<String> successedList = (List<String>) resultMap.get("successedList");
if(successedList != null && successedList.size() > 0){
temp.put("successedList", successedList);
}
resultList.add(temp);
}
Object[][] resultTable = new Object[totalLines][titles.length];
int row = 0;
for(int i = 0; i < resultList.size(); i++){
Map<String,Object> contentMap = resultList.get(i);
resultTable[row][0] = contentMap.get("fileName");
resultTable[row][1] = contentMap.get("totlaSamples");
List<String> failedList = (List<String>) contentMap.get("failedList");
if(failedList != null && failedList.size() > 0){
for(int n = 0; n < failedList.size(); n++){
resultTable[row][2] = failedList.get(n);
resultTable[row][3] = "导入失败";
row++;
}
}
List<String> successedList = (List<String>) contentMap.get("successedList");
if(successedList != null && !successedList.isEmpty()) {
for(int m=0; m<successedList.size(); m++){
resultTable[row][2] = successedList.get(m);
resultTable[row][3] = "导入成功";
row++;
}
}
}
DefaultTableModel tm = new DefaultTableModel(resultTable, titles);
jt.setModel(tm);
jt.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
jt.setColumnSelectionAllowed(true);
jt.setDefaultRenderer(Object.class,new ImportStatusRenderer());
jt.setRowHeight(24);
TableColumnModel tcm = jt.getColumnModel();
TableColumn tc = tcm.getColumn(1);
tc.setMaxWidth(60);
tc.setMinWidth(60);
//
tc = tcm.getColumn(3);
tc.setMaxWidth(300);
tc.setMinWidth(200);
TitledBorder border=BorderFactory.createTitledBorder("codis文件批量导入结果");
border.setTitleColor(Color.black);
resultScrollPane.setBorder(border);
resultScrollPane.setLocation(0, 20);
// panel.add(resultScrollPane);
this.validate();
}
public static void main(String[] args){
ComparedInitialView codisImport = new ComparedInitialView();
codisImport.setVisible(true);
}
}
class ImportStatusRenderer implements TableCellRenderer {
public static final DefaultTableCellRenderer DEFAULT_RENDERER = new DefaultTableCellRenderer();
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component renderer = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (column==3 || column==5) {
String str = "";
if(value instanceof String){
str = (String)value;
}
if(str.equals("导入失败")){
renderer.setBackground(Color.RED);
}else{
renderer.setBackground(Color.white);
}
} else {
if(column == 0){
String cellVal = "";
if(value instanceof String){
cellVal = (String)value;
}
if(cellVal != null && !cellVal.equals("")){
renderer.setBackground(Color.lightGray);
}else{
renderer.setBackground(Color.white);
}
}else{
renderer.setBackground(Color.white);
}
}
return renderer;
}
}