hjälp Posted August 13, 2004 Share Posted August 13, 2004 Hej! Jag använder JFrame och getContentPane för att göra ett GUI. I ett gammalt program som använde awt så skrev jag så här: public void paint (Graphics teckna) { teckna.setColor(lightBlue); teckna.drawLine(390,0,390,520); teckna.drawLine(0,520,800,520); } När jag kör ovanstående så ritas linjerna på en ny grå yta istället för i min contentPane, vad gör jag för fel? Link to comment Share on other sites More sharing options...
Linda M Posted August 15, 2004 Share Posted August 15, 2004 Tror du mŒste rita detta i paint(Graphics teckna) med awt och sen anropa metoden frŒn din JFrame. AlltsŒ mŒste du importera fšljande om allt ligger i samma klass: import java.awt.*; import java.awt.Graphics; import javax.swing.*; alternativt fšr javax.swing: paintComponent(Graphics teckna) som finns i klassen JComponent och funkar i JPanel, JButton, JTextField, etc, dock ej JFrame. Vet ju inte hur din Container och layout ser ut. Hoppas det hjŠlper. Mvh Linda Link to comment Share on other sites More sharing options...
hjälp Posted August 16, 2004 Author Share Posted August 16, 2004 Så här ser min klass ut. Är osäker hur jag ska göra. [log] import javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.event.*; import java.util.*; import java.sql.*; public class BetygReg extends JFrame implements ActionListener { /*variabeldeklarationer*/ public static Container c; private JMenuBar jmb; private JMenu jmArkiv, jmOperation; private JMenuItem jmiAvsluta, jmiLetaEfterPost,jmiRadera ,jmiUppdatera, jmiNy, jmiAlla; private Databashanterare dbh; private VisaTabell VT; private NyPost NP; private JTextField jtf1,jtf11, jtf2, jtf21, jtf3, jtf4; private JTextArea jta1; private JLabel lText, l1, l2, l3, l4, l41, l5, l51, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l21, fyrkant,fyrkant2; private JComboBox JBox, JBox2; private JRadioButton jrb1, jrb2, jrb3, jrb4, jrb5, jrb6, jrb7, jrb8; private ButtonGroup cbg, cbg1, cbg2, cbg3; private JButton jbSearch, jbSearch2, jbSearch3,jbSearch4, jbSearch5, jbBack; private JCheckBox jcb1, jcb2, jcb3, jcb4; private JTable dataTable = new JTable(), dataTable2 = new JTable(); //private JScrollPane dataTableScrollPane = new JScrollPane(); private JScrollPane jsp, jsp2; private Vector dataVector, headVector, dataVector2; private Graphics teckna; int test = 1; String Name = null; /*Konstruktor */ public BetygReg(Databashanterare dbh) { /*Anrop till klassen JFrames konstruktor för att man ska få text i titelraden på fönstret*/ super("Databasuppgift A & D"); this.dbh = dbh; try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); /* storlek på fönstret */ Color reallyRed = new Color(130,0,0); Color newYellow = new Color(251,225,65); setSize(1280,1000); setResizable(true); /*Hämtar "ritytan" för fönstret. Måste göras om man använder JFrame*/ c = getContentPane(); c.setLayout(null); c.setBackground(newYellow); skapaMenyer(); c.paint(teckna); /***********************Etiketter****************************/ l1 = new JLabel(new ImageIcon("book1.gif")); l1.setBounds(2, 25, 150, 150); l21 = new JLabel("SkolDatabas"); l21.setFont(new Font("Times new roman", Font.BOLD, 21)); l21.setForeground(newYellow); l2 = new JLabel("Registrera Betyg"); l2.setFont(new Font("Arial", Font.BOLD, 35)); l2.setForeground(Color.blue); l4 = new JLabel("Ange ID:"); l4.setFont(new Font("Arial", Font.BOLD, 14)); l4.setForeground(Color.blue); l4.setBounds(200, 170, 100, 30);//x, y, längd, höjd c.add(l4); l41 = new JLabel("Ange ID:"); l41.setFont(new Font("Arial", Font.BOLD, 14)); l41.setForeground(Color.blue); l41.setBounds(700, 170, 100, 30);//x, y, längd, höjd c.add(l41); l5 = new JLabel("Namn:"); l5.setFont(new Font("Arial", Font.BOLD, 14)); l5.setForeground(Color.blue); l5.setBounds(200, 230, 100, 30); c.add(l5); l51 = new JLabel("Namn:"); l51.setFont(new Font("Arial", Font.BOLD, 14)); l51.setForeground(Color.blue); l51.setBounds(700, 230, 100, 30); c.add(l51); l7 = new JLabel("Kurser :"); l7.setFont(new Font("Arial", Font.BOLD, 14)); l7.setForeground(Color.blue); l7.setBounds(190, 450, 300, 100); l8 = new JLabel("Kurs :"); l8.setFont(new Font("Arial", Font.BOLD, 14)); l8.setForeground(Color.blue); l8.setBounds(200, 395, 100, 100); l9 = new JLabel("Deltagare :"); l9.setFont(new Font("Arial", Font.BOLD, 14)); l9.setForeground(Color.blue); l9.setBounds(170, 450, 300, 100); l10 = new JLabel("Välj moment:"); l10.setFont(new Font("Arial", Font.BOLD, 14)); l10.setForeground(Color.blue); l10.setBounds(330,380,150,25); c.add(l10); l11 = new JLabel("Ange betyg:"); l11.setFont(new Font("Arial", Font.BOLD, 14)); l11.setForeground(Color.blue); l11.setBounds(598,380,150,25); c.add(l11); l12 = new JLabel("Info:"); l12.setFont(new Font("Arial", Font.BOLD, 14)); l12.setForeground(Color.blue); l12.setBounds(410,530,170,30); l13 = new JLabel("i kurs eller kurser"); l13.setFont(new Font("Arial", Font.BOLD, 10)); l13.setForeground(Color.blue); l13.setBounds(157, 275, 100, 50); l14 = new JLabel("som studenten"); l14.setFont(new Font("Arial", Font.BOLD, 10)); l14.setForeground(Color.blue); l14.setBounds(157, 295, 100, 50); l15 = new JLabel("deltar i."); l15.setFont(new Font("Arial", Font.BOLD, 10)); l15.setForeground(Color.blue); l15.setBounds(157, 315, 100, 50); /***********************kant**************************/ l3 = new JLabel(""); l3.setBounds(0, 0, 152, 1000); l3.setBackground(reallyRed); l3.setOpaque(true); fyrkant = new JLabel("<HTML>Här visas kurser per deltagare <br> eller deltagare per kurs </HTML>"); fyrkant.setFont(new Font("Arial", Font.BOLD, 12)); fyrkant.setHorizontalAlignment(JLabel.CENTER); fyrkant.setBackground(Color.white); fyrkant.setOpaque(true); fyrkant.setBorder(new BevelBorder(BevelBorder.LOWERED,Color.white, Color.black)); fyrkant2 = new JLabel(""); fyrkant2.setBackground(Color.white); fyrkant2.setOpaque(true); fyrkant2.setBorder(new BevelBorder(BevelBorder.LOWERED,Color.white, Color.black)); /************************kant end**********************/ l2.setBounds(430, 10, 300, 100); l21.setBounds(15,15,170,50); fyrkant.setBounds(250, 475, 250, 150); fyrkant2.setBounds(680, 430, 300, 200); //x, y, längd, höjd c.add(l21); c.add(l1); c.add(l2); c.add(l3); c.add(l12); //c.add(fyrkant); //c.add(fyrkant2); //c.add(l5); //c.add(l7); //c.add(l8); /*c.add(l10); c.add(l11); c.add(l12); c.add(l13); c.add(l14); c.add(l15);*/ /***********************Etiketter end****************************/ /*************************Textfält***************************/ jtf1 = new JTextField(); jtf2 = new JTextField(); jtf11 = new JTextField(); jtf21 = new JTextField(); jtf3 = new JTextField(); jtf4 = new JTextField(); jtf1.setBounds(270,170,70,30); //x, y, längd, höjd jtf2.setBounds(270,230,200,30); jtf11.setBounds(770,170,70,30); //x, y, längd, höjd jtf21.setBounds(770,230,200,30); jtf3.setBounds(450,530,170,30); jtf4.setBounds(350,345,70,30); jtf1.setFont(new Font("Arial", Font.BOLD, 14)); jtf2.setFont(new Font("Arial", Font.BOLD, 12)); jtf11.setFont(new Font("Arial", Font.BOLD, 14)); jtf21.setFont(new Font("Arial", Font.BOLD, 12)); c.add(jtf1); c.add(jtf2); c.add(jtf11); c.add(jtf21); c.add(jtf3); jtf1.addActionListener(this); /*************************Textfält end***********************/ /*************************TextAreor***************************/ //jta1 = new JTextArea("",2,5); //jta1.setBounds(200, 425, 250, 150); //c.add(jta1); /*************************TextAreor end***************************/ /*****************************Knappar************************/ jbSearch = new JButton("Registrera betyg"); jbSearch.setFocusPainted(false); jbSearch.setForeground(Color.blue); jbSearch.setBounds(450,470,170,30); jbSearch.setFont(new Font("Arial", Font.BOLD, 15)); jbSearch2 = new JButton("Registrera/Uppdatera Kurs"); jbSearch2.setFocusPainted(false); jbSearch2.setBounds(450,155,210,40); jbSearch2.setFont(new Font("Arial", Font.BOLD, 12)); jbSearch3 = new JButton("Registrera/Uppdatera Betyg"); jbSearch3.setFocusPainted(false); jbSearch3.setBounds(450,210,210,40); jbSearch3.setFont(new Font("Arial", Font.BOLD, 12)); jbSearch4 = new JButton("Sök student"); jbSearch4.setFocusPainted(false); jbSearch4.setBounds(350,170,120,30); jbSearch4.setFont(new Font("Arial", Font.BOLD, 14)); jbSearch4.addActionListener(this); jbSearch5 = new JButton("Sök kurs"); jbSearch5.setFocusPainted(false); jbSearch5.setBounds(850,170,110,30); jbSearch5.setFont(new Font("Arial", Font.BOLD, 14)); jbSearch5.addActionListener(this); jbBack = new JButton("Till huvudmeny"); jbBack.setFocusPainted(false); jbBack.setBounds(850,50,150,25); jbBack.setFont(new Font("Arial", Font.BOLD, 14)); jbBack.addActionListener(this); c.add(jbSearch); //c.add(jbSearch2); //c.add(jbSearch3); c.add(jbSearch4); c.add(jbSearch5); c.add(jbBack); //jbSearch4.addActionListener(this); //jbSearch2.addActionListener(this); /****************************Knappar end***********************/ /********************* RadioKnappAlternativ **************/ jrb1 = new JRadioButton ("Student", true); jrb2 = new JRadioButton ("Kurs", false); cbg = new ButtonGroup(); cbg.add(jrb1); cbg.add(jrb2); jrb1.setBackground(newYellow); jrb2.setBackground(newYellow); jrb1.setFont(new Font("Arial", Font.BOLD, 12)); jrb2.setFont(new Font("Arial", Font.BOLD, 12)); jrb1.setFocusPainted(false); jrb2.setFocusPainted(false); jrb1.setBounds(350,380,70,40); jrb2.setBounds(450,380,70,40); //jrb1.addActionListener(this); //jrb2.addActionListener(this); //c.add(jrb1); //c.add(jrb2); /********************* RadioKnappAlternativ end *************/ /********************* RadioKnappAlternativ2 **************/ jrb4 = new JRadioButton ("Studenter", true); jrb5 = new JRadioButton ("Kurser", false); cbg2 = new ButtonGroup(); cbg2.add(jrb4); cbg2.add(jrb5); jrb4.setBackground(newYellow); jrb5.setBackground(newYellow); jrb4.setFont(new Font("Arial", Font.BOLD, 12)); jrb5.setFont(new Font("Arial", Font.BOLD, 12)); jrb4.setFocusPainted(false); jrb5.setFocusPainted(false); jrb4.setBounds(750,380,90,40); jrb5.setBounds(850,380,70,40); //c.add(jrb4); //c.add(jrb5); //jrb4.addActionListener(this); //jrb5.addActionListener(this); /********************* RadioKnappAlternativ2 end *************/ /******************** JComboAlternativ ******************/ JBox = new JComboBox(); JBox.setBounds(598,400,150,25); c.add(JBox); JBox.setFont(new Font("Arial", Font.BOLD, 12)); JBox.addItem("MVG"); JBox.addItem("VG"); JBox.addItem("G"); /********************* JComboAlternativ end *************/ /******************** JComboAlternativ 2 ******************/ JBox2 = new JComboBox(); JBox2.setBounds(330,400,150,25); c.add(JBox2); JBox2.setFont(new Font("Arial", Font.BOLD, 12)); JBox2.addItem("Tentamen"); JBox2.addItem("Rapport"); JBox2.addItem("Laboration"); JBox2.addItem("Projekt"); /********************* JComboAlternativ 2 end *************/ /*en instans av LetaEfterPostPanel klassen skapas med hjälp av Databashanterare-objektet*/ //VT = new VisaTabell(dbh); //NP = new NyPost(dbh); /*gör fönstret synligt*/ setVisible(true); } catch (Exception ex) {} } /*Metod för att skapa menyer */ public void skapaMenyer() { jmb = new JMenuBar(); /*Använd setJMenuBar för att "montera" menyraden på fönstret så att den ligger kvar oavsett vad som sker i fönstret.*/ setJMenuBar(jmb); jmArkiv = new JMenu("Arkiv"); jmb.add(jmArkiv); jmiAvsluta = new JMenuItem("Avsluta"); jmiAvsluta.addActionListener(this); jmArkiv.add(jmiAvsluta); } /*Metod man kommer till när någon har klickat på menyval som har lyssnare. Här läggs kod för vad man vill ska hända*/ public void actionPerformed(ActionEvent ae) { String tabell = null; int test = 0; String svar, svar2, svar3, svar4, svar5, svar6, svar7, svar8; int leta = 0; try { if(ae.getSource()==jbSearch4) { test = 1; if (jrb1.isSelected() ) { tabell = "Kurs"; //Alla kurser en student går. c.add(l8); c.add(l9); c.remove(l8); c.remove(l9); c.add(l7); c.add(l5); } if (jrb2.isSelected()) { tabell = "Student"; c.remove(l5); c.remove(l7); c.add(l8); c.add(l9); } }//Knapp jbSearch4 if(ae.getSource()==jbSearch5) { test = 2; if(jrb4.isSelected()) { tabell = "Student"; } if(jrb5.isSelected()) { tabell = "Kurs"; } }//Knapp jbSeach5 if(ae.getSource() == jbBack) { //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); dispose(); } /*Avslutar hela programmet*/ if(ae.getSource() == jmiAvsluta) { System.exit(0); } Vector headVector = new Vector(); if(tabell.equals("Godkaend")) { headVector.add("Sid"); headVector.add("Kid"); headVector.add("Moment"); headVector.add("Datum"); headVector.add("Resultat"); } if(tabell.equals("Kurs")) { headVector.add("Kid"); headVector.add("Namn"); if(test == 2) headVector.add("Litteratur"); } if(tabell.equals("Oblmom")) { headVector.add("Kid"); headVector.add("Moment"); } if(tabell.equals("Student")) { headVector.add("Sid"); headVector.add("Namn"); if(test == 1) headVector.add("Resultat"); } validate(); repaint(); //dbh.skapaKoppling(); dataVector = new Vector(); if(test == 1) { leta = Integer.parseInt(jtf1.getText()); //Hämta text, omvandla till int. dataVector = dbh.selectSomeFromExempel(leta, tabell); Name = dbh.getName(leta, tabell); System.out.println("Namn : " + Name); if(Name != null) { jtf2.setForeground(Color.black); jtf2.setText(Name); } else { jtf2.setForeground(Color.red); if (jrb1.isSelected() ) jtf2.setText("Student finns ej."); else jtf2.setText("Kurs finns ej."); } }//End if test == 1 if(test == 2) { dataVector = dbh.selectAllFromExempel(tabell); } //dbh.avslutaKoppling(); if(test == 1) { presentResultSet(dataVector, headVector); } if(test == 2) { presentResultSet2(dataVector, headVector); } } catch(NumberFormatException e) { jtf2.setForeground(Color.red); String test2 = jtf2.getText(); System.out.println(test2); if(test2.equals("") || test2.equals("Skriv ej här!") || test2.equals("Fel format på ID!") || test2.equals("Kurs finns ej.") ||test2.equals("Student finns ej.") ) jtf2.setText("Fel format på ID!"); else jtf2.setText("Skriv ej här!"); } /*catch(NullPointerException e) { jtf2.setForeground(Color.red); if (jrb1.isSelected() ) jtf2.setText("Student finns ej."); if (jrb2.isSelected() ) jtf2.setText("Student finns ej."); }*/ }//End action performed public void presentResultSet(Vector dataVector, Vector headVector) { dataTable = new JTable(dataVector, headVector); //För att uppdatera scollpane if(jsp != null) remove(jsp); jsp = new JScrollPane(dataTable); jsp.setBounds(250, 475, 250, 150); c.remove(fyrkant); c.add(jsp); test = 0; } public void presentResultSet2(Vector dataVector, Vector headVector) { dataTable2 = new JTable(dataVector, headVector); //För att uppdatera scollpane if(jsp2 != null) remove(jsp2); jsp2 = new JScrollPane(dataTable2); jsp2.setBounds(680, 430, 300, 200); c.remove(fyrkant2); c.add(jsp2); test = 0; } public void paint (Graphics teckna) { //Ritar linje teckna.setColor(Color.yellow); teckna.drawLine(390,0,390,520); teckna.drawLine(0,520,800,520); } }//End class [/log] La till log-tagg. /Moderatorn [inlägget ändrat 2004-08-16 11:29:14 av Erik Junesjö] Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.