Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich soll bis morgen das Grundgerüst von einem Sudokulöser haben, das heißt die 9x9 Felder und dazu sollte jedes Feld durch aufrufen ein neues Fenster öffnen, in dem 3x3 Felder sind (mit den Zahlen 1-9) auf die ich wiederrum klicken kann. Je nachdem welche Zahl ich im 2. Fenster aufgerufen habe, sollte diese dann in dem Feld/Button vom 1. Fenster zu sehen sein!
Zur Lösung des Sudokus soll ich noch nichts abliefern, nur diesen relativ einfach Anfang von dem ich leider nur einen Teil habe, nämlich Folgenden.
Java:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Felder { public static void main(String args[]){
SLFrame frame = new SLFrame();
frame.setVisible(true);
frame.setResizable(false);
}}
class SLFrame extends JFrame{ public SLFrame(){
setTitle("Sudoku-Löser");
SLPanel panel = new SLPanel();
add(panel); pack();
}}
class SLPanel extends JPanel{
private JPanel panelN, panelC;
private JButton[][] display= new JButton[9][9];
public SLPanel(){
setLayout(new BorderLayout());
panelN = new JPanel();
/*ActionListener actionN = new ActionN();
addButtonN("Load01",actionN); addButtonN("Load02",actionN); addButtonN("Crit01",actionN);
add(panelN, BorderLayout.NORTH);*/
panelC = new JPanel(); panelC.setLayout(new GridLayout(9,9));
for (int i = 0; i<9; i++){ for (int j=0; j<9; j++){addButtonC(i,j);}}
add(panelC, BorderLayout.CENTER);
}
private void addButtonN(String label, ActionListener listener){
JButton button = new JButton(label);
button.addActionListener(listener);
panelN.add(button);
}
private void addButtonC(int i, int j){
display[i][j]= new JButton(" ");
display[i][j].setEnabled(false);
panelC.add(display[i][j]);
}}
Es wäre wirklich sehr nett, wenn mir jemand den Rest macht, sonst bin ich morgen ziemlich aufgeschmissen! Ich weiß, dass es normalerweise keine fertigen Quellcodes gibt, aber ich werde das selbst mit Hilfe heute wahrscheinlich nicht mehr programmiert bekommen
Hi,
Ich hab dir hier mal was vorbereitet:
Sudoku.java
Java:
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Sudoku {
private JFrame mainFrame;
private JPanel mainPanel;
public Sudoku() {
initMainFrame();
}
/**
* Method to initialize the mainFrame
*/
private void initMainFrame() {
mainFrame = new JFrame();
mainFrame.setLocationRelativeTo(null);
mainFrame.setTitle("Main Sudoku");
mainFrame.setSize(600, 600);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setResizable(false);
initMainPanel();
mainFrame.setVisible(true);
}
/**
* Method to initialize the mainPanel and add them to the mainFrame
*/
private void initMainPanel() {
mainPanel = new JPanel();
mainPanel.setLayout(new GridLayout(9,9));
for (int i = 0; i<81; i++){
addButton(i);
}
mainFrame.getContentPane().add(mainPanel);
}
/**
* Method to add a button to mainPanel
* @param i
*/
private void addButton(int i){
JButton button = new JButton();
button.setSize(10, 10);
button.setName("button " + (i+1));
button.addActionListener(new MyActionListener());
mainPanel.add(button);
}
/**
* Class for action Listeners
* @author knilch
*
*/
private class MyActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
new SmallSudoku(((JButton)e.getSource()));
}
}
private class SmallSudoku {
JButton pushedButton;
SmallSudoku(JButton pushedButton) {
this.pushedButton = pushedButton;
init();
}
private JFrame frame;
private JPanel panel;
private void init() {
frame = new JFrame();
frame.setLocationRelativeTo(null);
frame.setTitle("Sudoku");
frame.setSize(100, 100);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setResizable(false);
panel = new JPanel();
initPanel();
frame.setVisible(true);
}
private void initPanel() {
panel = new JPanel();
panel.setLayout(new GridLayout(3,3));
for (int i = 0; i<9; i++){
addButtonC(i);
}
frame.getContentPane().add(panel);
}
private void addButtonC(int i){
final JButton button = new JButton();
button.setSize(10, 10);
button.setText("" + (i+1));
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
pushedButton.setText(button.getText());
frame.dispose();
}
});
panel.add(button);
}
}
}
SudokuTest.java
Java:
public class SudokuTest {
public static void main(String[] args) {
new Sudoku();
}
}
Falls du Probleme hast dies zu verstehen, melde dich einfach.
Ich hoffe, dass du wenigstens so ehrlich bist, deinem Lehrer zu sagen, dass du Hilfe hattest, wenn er dich fragt.... oder zumindest irgendwo in deinem Code einen Hinweis machst, woher du diesen Code hast ..