Potrójne odstępy między literami w JTable gdy pobieram z bazy danych

0

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?
e662e6edce.png

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);
	}
}
1

Ja bym szukał błędu w kodowaniu znaków na utf8

0

Problem rozwiązany. Błąd w kodowaniu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1