Zdraveite na vsi4ki Java maniaci,
az sam nov v Java Programing i imam edin vapros kam tezi koito sa po naprednali.
Zna4i:V JFrame postaviam JSpinner i JTable,kato ideiata mi e pri promiana na JSpinner da se promeniat sas saotvetnoto 4islo i broiat na redovete v JTable.
Predstaviam vi i moia kod ako niakoi mose da pomogne:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.table.*;
import java.util.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.*;
public class Section extends JFrame{
private JButton HelpButton,logobutton,sectionbutton;
private Container container;
private Image icon;
private ImageIcon logo,section;
Border raisedbevel,loweredbevel,compound;
private JPanel sectionPanel;
private JLabel number;
private JSpinner numberpointsspinner;
private SpinnerNumberModel numberpointsModel;
private JTable pointstable;
private TableModel pointsmodel;
private JScrollPane pointsscrollPane;
public Section()
{
super("Bridge-Draw Section");
container=getContentPane();
container.setLayout(null);
container.setBackground(new Color(236,232,215));
Image icon=Toolkit.getDefaultToolkit().getImage("icon.gif");
setIconImage(icon);
logo=new ImageIcon("logo.gif");
logobutton=new JButton(logo);
container.add(logobutton);
section=new ImageIcon("Section.gif");
sectionbutton=new JButton(section);
container.add(sectionbutton);
HelpButton=new JButton("Help");
container.add(HelpButton);
sectionPanel=new JPanel();
container.add(sectionPanel);
number=new JLabel("Number of points");
container.add(number);
Pointsmodel myModel=new Pointsmodel();
JTable pointstable = new JTable(myModel);
JScrollPane pointsscrollPane = new JScrollPane(pointstable);
container.add(pointsscrollPane);
int numberpoints = 0;
SpinnerNumberModel numberpointsModel = new SpinnerNumberModel(numberpoints,numberpoints-0,numberpoints+80,1);
JSpinner numberpointsspinner = new JSpinner(numberpointsModel);
numberpointsspinner.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){
JSpinner source=(JSpinner)e.getSource();
Object value=source.getValue();
myModel.getRowCount(){return source.getValue();}
};
}
);
container.add(numberpointsspinner);
setSize(650,450);
setVisible(true);
setResizable(false);
raisedbevel = BorderFactory.createRaisedBevelBorder();
loweredbevel = BorderFactory.createLoweredBevelBorder();
compound = BorderFactory.createCompoundBorder(raisedbevel, loweredbevel);
HelpButton.setSize(60,20);
HelpButton.setLocation(578,395);
HelpButton.setBackground(new Color(236,232,215));
HelpButton.setBorder(raisedbevel);
logobutton.setBackground(new Color(236,232,215));
logobutton.setSize(640,80);
logobutton.setLocation(0,0);
logobutton.setBorder(compound);
sectionbutton.setSize(105,120);
sectionbutton.setBackground(new Color(236,232,215));
sectionbutton.setBorder(compound);
sectionbutton.setLocation(533,85);
sectionPanel.setSize(200,200);
sectionPanel.setLocation(2,85);
sectionPanel.setBorder(compound);
number.setSize(100,20);
number.setLocation(220,100);
numberpointsspinner.setSize(35,20);
numberpointsspinner.setLocation(335,100);
pointsscrollPane.setSize(150,80);
pointsscrollPane.setLocation(220,150);
}
public static void main(String args[])
{
JFrame.setDefaultLookAndFeelDecorated(true);
Section application=new Section();
application.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
}
}
class Pointsmodel extends AbstractTableModel {
private String[] columnNames = {"Points","X","Y"};
private Object[][] data = {{new Integer(1), new Integer(0),new Integer(0)},
{new Integer(2), new Integer(0),new Integer(0)},
{new Integer(3), new Integer(0),new Integer(0)},
{new Integer(4), new Integer(0),new Integer(0)} };
public int getColumnCount() {return columnNames.length;}
public int getRowCount(){return int newnumber;}
public String getColumnName(int col) {return columnNames[col];}
public Object getValueAt(int row, int col) { return data[row][col];}
public boolean isCellEditable(int row, int col) {
if (col < 1) {
return false;}
else {
return true;}
};
public void setValueAt(Object value, int row, int col) {data[row][col] = value;fireTableCellUpdated(row, col);}
}
|