Stundenplan

Infinity

Mitglied
Hallo zusammen. Ich bin ein kompletter Einsteiger in Java und bräuchte mal etwas Hilfe, auch wenn ich mir ziemlich doof vorkomme, aber was solls :(
Bin dabei eine Stundenplan Applikation zu programmieren. Bisher kam ich mit Google ganz zurecht, nun stecke ich allerdings fest. :shock:

Den RowHeader für die Zeiten konnte ich einfügen und anpassen, allerdings funktioniert nun der Header der JTable nicht, ich gehe davon aus, weil ich da das DefaultTableModel verwende... weiss allerdings nicht was ich sonst, TableModel selber klappt irgendwie nicht.

Nun sind die Spalten ja zum reinschreiben. Genial wäre es auch, wenn man für jedes Feld eine Drop Down Liste hätte, wo man die Fächer direkt aussuchen könnte.

Zum Schluss würde ich das Ganze gerne per Button in Excel exportieren können. ???:L

Hat vielleicht jemand eine Idee, wie ich weiter machen kann, denn momentan sehe ich nur noch Code, habe zwar die ganzen Ziele definiert, aber komme wirklich nicht mehr weiter und die Tipps die ich finde, funktionieren in Kombination mit dem was ich bisher gemacht habe nicht so wirklich. :rtfm:

Für jede Antwort danke ich schon mal....

Hier noch mein bisheriger Code :bahnhof:

Java:
public class zeit extends JFrame {    
public zeit(){
        super("Stundenplan 2015");
        setSize(new Dimension(900,575));
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setLocationRelativeTo(null);
        setLayout(new BorderLayout());
        
        JLabel label = new JLabel("Whatever");
        add(label, BorderLayout.SOUTH);
        
        ListModel lm = new RowHeaderListModel();
        
        DefaultTableModel dtm = new DefaultTableModel(lm.getSize(), 5);
        JTable table = new JTable(dtm);
        table.setRowHeight(50);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
        
        JList rowHeader = new JList(lm);
        rowHeader.setFixedCellWidth(150);
        rowHeader.setFixedCellHeight(50);
        rowHeader.setCellRenderer(new RowHeaderRenderer(table));
        
        JScrollPane scroll = new JScrollPane(table);
        scroll.setRowHeaderView(rowHeader);
        getContentPane().add(scroll, BorderLayout.CENTER);
    }
    
    public static void main(String[] args){
        zeit frame = new zeit();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

Java:
public class RowHeaderListModel extends AbstractListModel {    String strRowHeaders[] = {"Zeit", "07:25 - 08:10", "08:15 - 09:00", "09:05 - 09:50", "10:10 - 10:55", "11:00 - 11:45", "13:00 - 13:45", "13:50 - 14:35", "14:55 - 15:40", "15:45 - 16:30"};
    
    public int getSize(){
        return strRowHeaders.length;
    }
    
    public Object getElementAt(int index){
        return strRowHeaders[index];
    }


}

Java:
public class RowHeaderRenderer extends JLabel implements ListCellRenderer {
    RowHeaderRenderer(JTable table){
        JTableHeader tableHeader = table.getTableHeader();
        setBorder(UIManager.getBorder("TableHeader.cellBorder"));
        setHorizontalAlignment(CENTER);
        setForeground(tableHeader.getForeground());
        setOpaque(true);
        setFont(tableHeader.getFont());
    }
    
    public Component getListCellRendererComponent(JList list, Object value, int index,
            boolean fSelected, boolean fCellHasFocus){
        setText((value == null) ? "" : value.toString());
        return this;
    }


}
 
Zuletzt bearbeitet:

strußi

Top Contributor
sowas habe ich schon mal im zweiten semester programmiert, damals haben wir ein Label[][] genommen, des weiteren hatten wir ein feld für kommentare/Terminänderungen, ...

für den export würde ich ein Menu/toolbar nutzen, ist aufgeräumter als ein button.
 
Zuletzt bearbeitet:

Infinity

Mitglied
Ich hab mal etwas umprogrammiert...

Nun stecke ich an einem neuen Ort fest, ich habe die ComboBox programmiert, wenn ich das ganze Programm ausführe,
kann ich allerdings keine ComboBox sehen.... Sollte das per ComboBox nicht funktionieren, würde ich auch akzeptieren, wenn man in die Felder "Fächer auswählen", wenigstens den Text ändern könnte...

Kann mir jemand helfen, bitte??

Java:
public class FaecherZeit extends JFrame {	public FaecherZeit(){
		super("Stundenplan 2015");
		setSize(new Dimension(900,550));
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		setLocationRelativeTo(null);
		setLayout(new BorderLayout());
		
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		
		JMenu mnFile = new JMenu("Datei");
		menuBar.add(mnFile);
		
		JMenuItem mntmExport = new JMenuItem("Als XLS speichern");
		mnFile.add(mntmExport);
		
		JMenuItem mntmReset = new JMenuItem("Reset");
		mnFile.add(mntmReset);
		
		JMenuItem mntmExit = new JMenuItem("Schliessen");
		mnFile.add(mntmExit);
		
		JLabel label = new JLabel("Whatever");
		add(label, BorderLayout.SOUTH);
		
		ListModel lm = new RowHeaderListModel();
		
		JTable table = new JTable(new MyTableModel());
		table.setRowHeight(50);
		
		JList rowHeader = new JList(lm);
		rowHeader.setFixedCellWidth(150);
		rowHeader.setFixedCellHeight(50);
		rowHeader.setCellRenderer(new RowHeaderRenderer(table));
		
		JScrollPane scroll = new JScrollPane(table);
		scroll.setRowHeaderView(rowHeader);
		getContentPane().add(scroll, BorderLayout.CENTER);
	}
	


	public void setUpFaecher(JTable table,TableColumn faecher) {


		
		JComboBox comboBox = new JComboBox();
		comboBox.addItem("Mathematik");
		comboBox.addItem("Deutsch");
		comboBox.addItem("Englisch");
		comboBox.addItem("Französisch");
		comboBox.addItem("Geschichte");
		comboBox.addItem("Geographie");
		comboBox.addItem("Sport");
		
		faecher.setCellEditor(new DefaultCellEditor(comboBox));
		
		DefaultTableCellRenderer renderer =
		new DefaultTableCellRenderer();
		renderer.setToolTipText("Click for combo box");
		faecher.setCellRenderer(renderer);
	}
	
	
	class MyTableModel extends AbstractTableModel {
        private String[] columnNames = {"Montag","Dienstag","Mittwoch","Donnerstag","Freitag"};
        
        private Object[][] data = {
	    {"Fach auswählen", "Fach auswählen", "Fach auswählen", "Fach auswählen", "Fach auswählen"},
	    {"Fach auswählen", "Fach auswählen","Fach auswählen", "Fach auswählen", "Fach auswählen"},
	    {"Fach auswählen", "Fach auswählen","Fach auswählen", "Fach auswählen", "Fach auswählen"},
	    {"Fach auswählen", "Fach auswählen","Fach auswählen", "Fach auswählen", "Fach auswählen"},
	    {"Fach auswählen", "Fach auswählen","Fach auswählen", "Fach auswählen", "Fach auswählen"},
	    {"Fach auswählen", "Fach auswählen","Fach auswählen", "Fach auswählen", "Fach auswählen"},
	    {"Fach auswählen", "Fach auswählen","Fach auswählen", "Fach auswählen", "Fach auswählen"},
	    {"Fach auswählen", "Fach auswählen","Fach auswählen", "Fach auswählen", "Fach auswählen"},
	    {"Fach auswählen", "Fach auswählen","Fach auswählen", "Fach auswählen", "Fach auswählen"}
        };


        
        public int getColumnCount() {
            return columnNames.length;
        }


        public int getRowCount() {
            return data.length;
        }


        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 > 6) {
                return false;
            } else {
                return true;
            }
        }
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B gibt es ein Stundenplan-Algorithmus? Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben