
This is my code. Please tell me the solutions
import javax.swing.table.*;
import javax.swing.*; import java.util.*; import java.awt.*; import java.awt.event.*; import java.awt.print.*; import java.awt.geom.*; import java.util.Calendar;
public class Salary_report extends JFrame implements ActionListener {
Vector data;
JTable table;
JLabel banner;
ImageIcon images;
Container c;
Employee_report f1;
JButton print;
String s,days,basic,pf,hra,esi,bonus,advance,allowance,loan,incentive,dother,da,eother,gross,ded,net,leave;
double ge,td,np,l,l1;
public Salary_report(Employee_report f1)
{
c=getContentPane();
c.setLayout(null);
setResizable(false);
setTitle("Employee Salary Report");
setBounds(250,50,700,750);
WindowShow.setNativeLookAndFeel();
s=f1.ename.getSelectedItem().toString();
basic=f1.txtbsalary.getText();
pf=f1.txtpf.getText();
hra=f1.txthra.getText();
esi=f1.txtesi.getText();
bonus=f1.txtbonus.getText();
advance=f1.txtadv.getText();
allowance=f1.txtsall.getText();
loan=f1.txtploan.getText();
incentive=f1.txtinc.getText();
dother=f1.txtoth.getText();
da=f1.txtda.getText();
eother=f1.txtoth1.getText();
l=Double.parseDouble(f1.txtleave.getText());
if(l<=1)
{
leave="0";
}
else
{
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH - 1);
int date = 1;
calendar.set(year, month, date);
int day = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
l1=(Double.parseDouble(basic)/day)*(l-1);
leave=Double.toString(Math.round(l1));
days=Integer.toString(day);
}
ge=Double.parseDouble(basic)+Double.parseDouble(hra)+Double.parseDouble(bonus)+Double.parseDouble(allowance)+Double.parseDouble(incentive)+Double.parseDouble(da)+Double.parseDou
ble(eother); gross=Double.toString(ge); td=Double.parseDouble(pf)+Double.parseDouble(esi)+Double.parseDouble(advance)+Double.parseDouble(loan)+Double.parseDouble(dother)+Double.parseDouble(leave); ded=Double.toString(td); np=ge-td; net=Double.toString(np);
data = createData();
print=new JButton("Print");
print.setBounds(300,550,100,20);
c.add(print);
print.addActionListener(this);
SplitCellTableModel model = new SplitCellTableModel();
table = new JTable(model);
table.getColumnModel().getColumn(0).setCellEditor(new SplitTableCellEditor());
table.getColumnModel().getColumn(1).setCellEditor(new SplitTableCellEditor());
table.getColumnModel().getColumn(0).setCellRenderer(new SplitTableCellRenderer());
table.getColumnModel().getColumn(1).setCellRenderer(new SplitTableCellRenderer());
JScrollPane scroller = new JScrollPane(table);
if(f1.cname.getSelectedItem().toString().equals("Teamwork Architecture"))
images=new ImageIcon("TWA.jpg");
else if(f1.cname.getSelectedItem().toString().equals("Teamwork Techno Solutions"))
images=new ImageIcon("TWT.jpg");
banner=new JLabel();
banner.setIcon(images);
banner.setBounds(60,50,600,150);
c.add(banner,BorderLayout.NORTH);
scroller.setBounds(60,250,600,260);
c.add(scroller);
}
public void actionPerformed(ActionEvent ae)
{
String str=ae.getActionCommand();
if(str.equalsIgnoreCase("Print"))
{
print.setVisible(false);
PrintableDocument.printComponent(this);
}
}
public Vector createData()
{
Vector result = new Vector();
Vector rec = new Vector();
Object[] value = new Object[] {"Employee Name",s};
rec.add(value);
value = new Object[] {"Total Days",days};
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"", ""};
rec.add(value);
value = new Object[] {"", ""};
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"Earnings", ""};
rec.add(value);
value = new Object[] {"Deductions", ""};
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"", ""};
rec.add(value);
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"Basic",basic};
rec.add(value);
value = new Object[] {"PF",pf};
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"HRA",hra};
rec.add(value);
value = new Object[] {"ESI",esi};
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"Bonus",bonus};
rec.add(value);
value = new Object[] {"Salary Advance",advance};
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"Special Allowance",allowance};
rec.add(value);
value = new Object[] {"Personal Loan",loan};
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"Incentive",incentive};
rec.add(value);
value = new Object[] {"Others",dother};
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"DA",da};
rec.add(value);
value = new Object[] {"Leave",leave};
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"Others",eother};
rec.add(value);
value = new Object[] {"", ""};
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"", ""};
rec.add(value);
value = new Object[] {"", ""};
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"Gross Earnings(A)",gross};
rec.add(value);
value = new Object[] {"Total Deductions(B)",ded};
rec.add(value);
result.add(rec);
rec = new Vector();
value = new Object[] {"Net Pay (A)-(B)",net};
rec.add(value);
value = new Object[] {"", ""};
rec.add(value);
result.add(rec);
return result;
}
public class SplitCellTableModel extends DefaultTableModel { public SplitCellTableModel() { }
public int getRowCount()
{
return data.size();
}
public int getColumnCount()
{
return 2;
}
public String getColumnName(int col)
{
if (col == 0)
return " ";
else
return "Date";
}
public Object getValueAt(int row, int col)
{
Vector rec = (Vector)data.get(row);
return rec.get(col);
}
public Vector getDataVector()
{
return data;
}
public boolean isCellEditable(int row, int col)
{
return false;
}
public void setValueAt(Object value, int row, int col)
{
Vector rec = (Vector)data.get(row);
rec.setElementAt(value, col);
}
}
public class SplitTableCellEditor extends AbstractCellEditor implements TableCellEditor { JPanel editingPanel; JTextField leftTextField; JTextField rightTextField;
public SplitTableCellEditor()
{
super();
editingPanel = new JPanel();
editingPanel.setLayout(new GridLayout(1, 2));
leftTextField = new JTextField();
editingPanel.add(leftTextField);
rightTextField = new JTextField();
editingPanel.add(rightTextField);
}
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int rowIndex, int colIndex)
{
Object[] splitVal = (Object[])value; // cast to array of Object
if (splitVal != null)
{
String leftStr = (String)splitVal[0];
String rightStr = (String)splitVal[1];
leftTextField.setText(leftStr == null ? "" : leftStr);
rightTextField.setText(rightStr == null ? "" : rightStr);
}
else
{
leftTextField.setText("");
rightTextField.setText("");
}
return editingPanel;
}
public Object getCellEditorValue()
{
Object[] value = new Object[] {leftTextField.getText(), rightTextField.getText()};
return value;
}
}
public class SplitTableCellRenderer implements TableCellRenderer { JPanel rendererPanel; JLabel leftLabel; JLabel rightLabel;
public SplitTableCellRenderer()
{
super();
rendererPanel = new JPanel();
rendererPanel.setLayout(new GridLayout(1, 2));
leftLabel = new JLabel("Adfasdf");
leftLabel.setOpaque(true);
leftLabel.setBackground(Color.white);
rendererPanel.add(leftLabel);
rightLabel = new JLabel("adsfsdf");
rightLabel.setOpaque(true);
rightLabel.setBackground(Color.white);
rendererPanel.add(rightLabel);
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col)
{
Object[] splitVal = (Object[])value; // cast to array of Object
if (splitVal != null)
{
String leftStr = (String)splitVal[0];
String rightStr = (String)splitVal[1];
leftLabel.setText(leftStr == null ? "" : leftStr);
rightLabel.setText(rightStr == null ? "" : rightStr);
}
else
{
leftLabel.setText("");
rightLabel.setText("");
}
return rendererPanel;
}
}
}
If i click print button then my current window is print in a paper.
The paper contain only half of the output. But i want full screen output.
Please tell me the solutions
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.