Just nu i M3-nätverket
Gå till innehåll

Rita i Java


hjälp

Rekommendera Poster

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?

 

Länk till kommentar
Dela på andra webbplatser

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

 

 

Länk till kommentar
Dela på andra webbplatser

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ö]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...