Witam,
Zacznę od tego, iż zbudowałem aplikację która pobierała dane z bazy danych MySQL i wyświetlała je w tabeli. Wszystko było ok. Postanowiłem przerobić tą aplikację na aplet i w tym momencie pojawił się problem. Podczas wyświetlania tabeli pomiędzy poszczególnymi literami (znakami) pojawiają się po 3 białe znaki (spacje). Czy ktoś może wie dlaczego?
package order;
import javax.swing.JPanel;
import javax.swing.SpringLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import connection.Singleton;
import order.ButtonEditor;
import order.ButtonRenderer;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class prev extends JPanel {
private static final long serialVersionUID = -8526084786234107650L;
private JTable table;
Object[][] data = null;
String[] columnNames = { "Numer", "Ladunek", "Zal. Nazwa","Zal. Miejsce", "Rozl. Nazwa","Rozl. Miejsce", "Data zaladunku", "Data rozladunku","Godzina rozladunku" ,"Usun", "Szczególy"};
DefaultTableModel model = new DefaultTableModel(data, columnNames);
Singleton db = Singleton.getDbCon();
ResultSet rss;
Calendar cal = Calendar.getInstance();
public void refresh(){
String querry = "Select order.id, "
+"(Select load.name From `load` Where load.id = order.id_load) As name_loa,"
+"(Select town.name From town Where town.id = order.id_town_1) As name_loading, "
+ "(Select town.adres From town Where town.id = order.id_town_1) As town_loading,"
+"(Select town.name From town Where town.id = order.id_town_2) As name_unloading,"
+"(Select town.adres From town Where town.id = order.id_town_2) As town_unloading,"
+"DATE_FORMAT(date_loading, '%d-%m-%Y'),"
+"DATE_FORMAT(date_unloading, '%d-%m-%Y'),"
+"DATE_FORMAT(time_unloading, '%H:%i')From `order`";
ResultSet rs = null;
try {
rs = db.query(querry);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
model.setNumRows(0);
try {
while (rs.next()) {
model.addRow(new Object[] {rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9) });
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
table.getColumn("Usun").setCellRenderer(new ButtonRenderer("Usun"));
table.getColumn("Usun").setCellEditor(
new ButtonEditor(new JCheckBox(), "Usun"));
table.getColumn("Szczególy").setCellRenderer(new ButtonRenderer("Szczególy"));
table.getColumn("Szczególy").setCellEditor(
new ButtonEditor(new JCheckBox(), "Szczególy"));
}
public prev() {
addComponentListener(new ComponentAdapter() {
@Override
public void componentShown(ComponentEvent arg0) {
table.setAutoCreateRowSorter(true);
refresh();
}});
SpringLayout springLayout = new SpringLayout();
setLayout(springLayout);
JLabel lblTytul = new JLabel("PODGLAD ZLECEN");
springLayout.putConstraint(SpringLayout.NORTH, lblTytul, 28, SpringLayout.NORTH, this);
springLayout.putConstraint(SpringLayout.WEST, lblTytul, 336, SpringLayout.WEST, this);
lblTytul.setFont(new Font("Arial", Font.ITALIC, 25));
add(lblTytul);
JScrollPane scrollPane = new JScrollPane();
springLayout.putConstraint(SpringLayout.NORTH, scrollPane, -600, SpringLayout.SOUTH, this);
springLayout.putConstraint(SpringLayout.WEST, scrollPane, 10, SpringLayout.WEST, this);
springLayout.putConstraint(SpringLayout.SOUTH, scrollPane, -10, SpringLayout.SOUTH, this);
springLayout.putConstraint(SpringLayout.EAST, scrollPane, -10, SpringLayout.EAST, this);
add(scrollPane);
JButton btnOdsw = new JButton("Odswiez");
btnOdsw.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
refresh();
}
});
springLayout.putConstraint(SpringLayout.NORTH, btnOdsw, 45, SpringLayout.NORTH, this);
springLayout.putConstraint(SpringLayout.WEST, btnOdsw, 10, SpringLayout.WEST, this);
add(btnOdsw);
final JTextField Tfwyszuk = new JTextField();
springLayout.putConstraint(SpringLayout.NORTH, Tfwyszuk, 17, SpringLayout.NORTH, this);
springLayout.putConstraint(SpringLayout.WEST, Tfwyszuk, 110, SpringLayout.WEST, this);
Tfwyszuk.setFont(new Font("Times New Roman", Font.BOLD, 15));
Tfwyszuk.setColumns(10);
add(Tfwyszuk);
JButton btnWyszuk = new JButton("Wyszukaj");
btnWyszuk.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String ws = Tfwyszuk.getText();
Integer wss = Integer.valueOf(ws);
table.getSelectionModel().setSelectionInterval(wss, wss);
table.scrollRectToVisible(new Rectangle(table.getCellRect(wss, 0, true)));
}
});
springLayout.putConstraint(SpringLayout.NORTH, btnWyszuk, 15, SpringLayout.NORTH, this);
springLayout.putConstraint(SpringLayout.WEST, btnWyszuk, 10, SpringLayout.WEST, this);
add(btnWyszuk);
setVisible(true);
final Color ColorGreen = new Color (77, 153, 0);
final Color ColorRed = new Color (255, 100, 100);
table = new JTable(model){
/**
*
*/
private static final long serialVersionUID = -896460657386122096L;
@Override
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component component = super.prepareRenderer(renderer, row, column);
String dat = (String) table.getValueAt(row, 7);
SimpleDateFormat simpleDateHere = new SimpleDateFormat("dd-MM-yyyy");
String dataa = simpleDateHere.format(new Date());
Date date1 = null;
try {
date1 = simpleDateHere.parse(dat);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Date date2 = null;
try {
date2 = simpleDateHere.parse(dataa);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (date2.after(date1))
{
component.setBackground(ColorRed);
setForeground(Color.white);
}
else
{
component.setBackground(ColorGreen);
setForeground(Color.white);
}
int rendererWidth = component.getPreferredSize().width;
TableColumn tableColumn = getColumnModel().getColumn(column);
tableColumn.setPreferredWidth(Math.max(rendererWidth + getIntercellSpacing().width, tableColumn.getPreferredWidth()));
return component;
}
};
JTableHeader header = table.getTableHeader();
header.setFont(new Font("Arial", Font.BOLD, 11));
scrollPane.setViewportView(table);
setVisible(true);
}
}