25. september 2008 - 20:53Der er
5 kommentarer og 1 løsning
Indtast navn, udskriv navn - hjælp til kode
Halløj.
Jeg har forsøgt at lave et javaprogram. Det fungerer sådan, at man skal indtaste sit navn i en boks, og så skulle navnet gerne vises bagefter. Her er min kode:
____________________
import java.awt.*; import javax.swing.*;
public class Test extends JPanel {
public Test() { JTextField navn = new JTextField(); Object[] msg = {"Indtast dit navn: ", navn}; JOptionPane op = new JOptionPane(msg, JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null, null); JDialog dialog = op.createDialog(this, "Boks"); dialog.setVisible(true); int result = JOptionPane.OK_OPTION; try { result = ((Integer)op.getValue()).intValue(); } catch(Exception uninitializedValue) { } if(result == JOptionPane.OK_OPTION) { System.out.print(navn.getText()); } }
public void TegnTekst(Graphics g, String a, int b, int c) { g.drawString(a, b, c); }
public void paintComponent(Graphics g) { g.setColor(Color.BLUE); TegnTekst(g, "Hej",200,110); }
public static void main(String[] arg) { Test panel = new Test(); JFrame vindue = new JFrame("Grafikpanel"); vindue.add(panel); vindue.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); vindue.setSize(400,200); vindue.setVisible(true); }
}
_______________
Jeg udskriver "Hej" når programmet åbnes som koden viser. Jeg vil frygtelig gerne have, at navn.getText() vises, altså det navn som brugeren har indtastet i stedet for. Jeg har dog ikke været i stand til at finde en løsning. Derfor spørger jeg jer til råds.
Jeg kan godt se at din løsning er bedre. Men hvordan er det så muligt at få udskrevet det input computeren får som en g.drawString? Som det står nu, er det jo i en slags input-felt.
Og hvad så hvis man forestiller sig at der er blevet indtastet et tal ind og jeg ønsker at tjekke noget på det.
Eksempelvis
if (tal < 1000) { gør noget } else { gør noget andet }
Jeg regner menlig med, at jeg vil lave videre på det, således at det man skriver ind skal valideres.
public class NewJFrame extends javax.swing.JFrame { private MyPanel panel;
public NewJFrame() { panel = new MyPanel(); getContentPane().add(panel); setSize(400,400); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
pack(); setVisible(true);
input(); }
private void input(){ String s = JOptionPane.showInputDialog(this, "Skriv et tal") ;
// Tjek tallet her
panel.setString(s); }
public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new NewJFrame().setVisible(true); } }); } }
class MyPanel extends JPanel{ private String str ="";
public MyPanel(){ }
public void setString(String s){ this.str = s; repaint(); }
public void paintComponent(Graphics g){ g.drawString(str, 50, 50); } }Eksempel
public class NewJFrame extends javax.swing.JFrame { private MyPanel panel;
public NewJFrame() { panel = new MyPanel(); getContentPane().add(panel); setSize(400,400); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
pack(); setVisible(true);
input(); }
private void input(){ String s = JOptionPane.showInputDialog(this, "Skriv et tal") ;
// Tjek tallet her
panel.setString(s); }
public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new NewJFrame().setVisible(true); } }); } }
class MyPanel extends JPanel{ private String str ="";
public MyPanel(){ }
public void setString(String s){ this.str = s; repaint(); }
public void paintComponent(Graphics g){ g.drawString(str, 50, 50); } }
public class NewJFrame extends javax.swing.JFrame { private MyPanel panel;
public NewJFrame() { panel = new MyPanel(); getContentPane().add(panel); setSize(400,400); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
pack(); setVisible(true);
input(); }
private void input(){ String s = JOptionPane.showInputDialog(this, "Skriv et tal") ;
// Tjek tallet her
panel.setString(s); }
public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new NewJFrame().setVisible(true); } }); } }
class MyPanel extends JPanel{ private String str ="";
public MyPanel(){ }
public void setString(String s){ this.str = s; repaint(); }
public void paintComponent(Graphics g){ g.drawString(str, 50, 50); } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.