I've written a code in java that solves sudokus and I used Java Applet for designing it. Now, I'm trying to use Java Swing to make it look better and to add some features like "saving" a sudoku board etc. Unfortunately, I'm not too familiar with Java Swing and I'm having some trouble using Graphics(to draw the board 9x9). I also don't understand why I can't extend JFrame and JPanel at the same class.
import java.applet.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
import java.util.Scanner;
class Sudoku2 extends JPanel implements ActionListener, MouseListener,
        ItemListener {
    public JPanel createContentPane() {
        JPanel GUI = new JPanel();
        GUI.setLayout(null);
        JPanel titlePanel = new JPanel();
        titlePanel.setLayout(null);
        titlePanel.setLocation(10, 0);
        titlePanel.setSize(250, 30);
        GUI.add(titlePanel);
        JPanel scorePanel = new JPanel();
        scorePanel.setLayout(null);
        scorePanel.setLocation(10, 40);
        scorePanel.setSize(250, 30);
        GUI.add(scorePanel);
        JPanel buttonPanel = new JPanel();
        buttonPanel.setLayout(null);
        buttonPanel.setLocation(0, 0);
        buttonPanel.setSize(300, 200);
        GUI.add(buttonPanel);
        JButton solve = new JButton("Solve");
        solve.setLocation(20, 100);
        solve.setSize(100, 30);
        buttonPanel.add(solve);
        JButton clear_digit = new JButton("Clear Digit");
        clear_digit.setLocation(20, 140);
        clear_digit.setSize(100, 30);
        buttonPanel.add(clear_digit);
        GUI.setOpaque(true);
        return GUI;
    }
    public JMenuBar createMenuBar() {
        JMenuBar menuBar = new JMenuBar();
        JMenu Menu = new JMenu("File");
        menuBar.add(Menu);
        JMenuItem new1 = new JMenuItem("New");
        new1.addActionListener(this);
        JMenuItem load = new JMenuItem("Load");
        load.addActionListener(this);
        JMenuItem save1 = new JMenuItem("Save");
        save1.addActionListener(this);
        JMenuItem save2 = new JMenuItem("Save As...");
        save2.addActionListener(this);
        Menu.add(new1);
        Menu.add(load);
        Menu.add(save1);
        Menu.add(save2);
        return menuBar;
    }
    private static void createAndShowGUI() {
        JFrame frame = new JFrame("Sudoku Solver");
        Sudoku2 demo = new Sudoku2();
        frame.setJMenuBar(demo.createMenuBar());
        frame.setContentPane(demo.createContentPane());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500, 500);
        frame.setVisible(true);
    }
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawLine(50, 50, 100, 100);
    }
    @Override
    public void mouseClicked(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void mousePressed(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void mouseReleased(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void mouseEntered(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    @Override
    public void mouseExited(MouseEvent e) {
        // TODO Auto-generated method stub
    }
    public void actionPerformed(ActionEvent e) {
    }
    public void itemStateChanged(ItemEvent e) {
    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}
`
 
    