Avatar billede martinka Nybegynder
03. december 2001 - 14:44 Der er 9 kommentarer og
2 løsninger

Set.Visible

Hej
Jeg vil gerne lave noget så hvis der optræder et 0 efter at tallene er sat ind - så skal textfieldets visible være false

public class SwingApplication {
   
    public int[][] tal ={
    {1,2,3,4,5},   
    {0,600, 700,800,900}};        
   
    public Component createComponents() {

    final JTextField label1 = new JTextField();
    final JTextField label2 = new JTextField();
    final JTextField label3 = new JTextField();
    final JTextField label4 = new JTextField();
    final JTextField label5 = new JTextField();
    final JTextField label6 = new JTextField();
    final JTextField label7 = new JTextField();
    final JTextField label8 = new JTextField();
    final JTextField label9 = new JTextField();
    final JTextField label10 = new JTextField();

    JLabel empty = new JLabel(\"\");
   
  JButton button= new JButton(\"Find elementer\");
 
  //Sammenspil mellem knap op array
  button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
               
  label1.setText(\"\" + tal[0][0]);
  label2.setText(\"\" + tal[1][0]);
  label3.setText(\"\" + tal[0][1]);
  label4.setText(\"\" + tal[1][1]);
  label5.setText(\"\" + tal[0][2]);
  label6.setText(\"\" + tal[1][2]);
  label7.setText(\"\" + tal[0][3]);
  label8.setText(\"\" + tal[1][3]);
  label9.setText(\"\" + tal[0][4]);
  label10.setText(\"\" + tal[1][4]);

            }
        });
       
JPanel pane = new JPanel();
pane.setBorder(BorderFactory.createEmptyBorder(
    30,30,10,30));
        pane.setLayout(new GridLayout(10,10));
       
        pane.add(button);
        pane.add(empty);
                pane.add(label1);
        pane.add(label2);
        pane.add(label3);
        pane.add(label4);
        pane.add(label5);
        pane.add(label6);
        pane.add(label7);
        pane.add(label8);
        pane.add(label9);
        pane.add(label10);       
       
        return pane;

Avatar billede disky Nybegynder
03. december 2001 - 14:58 #1
undersøg om det er nul og hvis ja setVisible(false);
Avatar billede martinka Nybegynder
03. december 2001 - 15:10 #2
jep er det jeg vil lave....

men jeg kan ikke helt finde ud af at implementere det....

Avatar billede carstenknudsen Nybegynder
03. december 2001 - 15:22 #3
try {
double x = Double.parseDouble(label1.getText());
if ( x == 0.0 ) label1.setVisible( false );
}
catch (NumberFormatException nfe ) {
}
PS det er ikke god navngivning at kalde et
tekst felt for label, det smager mere af JLabel.
Avatar billede disky Nybegynder
03. december 2001 - 15:25 #4
lad være med at parseDouble det er langsomt:
Og man skal bøvle med exception.

Følgende er hurtigere og lettere:

label1.setText(\"\" + tal[0][0]);
if(tal[0][0]==0) label1.setVisible(false);
label2.setText(\"\" + tal[1][0]);
if(tal[1][0]==0) label2.setVisible(false);

osv.
 
Avatar billede carstenknudsen Nybegynder
03. december 2001 - 15:28 #5
disky: nej det er ikke langsomt i GUI sammenhæng.
Avatar billede disky Nybegynder
03. december 2001 - 15:30 #6
jo det er langsomt, at gui også er det er ingen undskyldning.

Hvis der findes en nemmere og hurtigere måde, kan man ligeså godt udnytte den istedet.
Avatar billede carstenknudsen Nybegynder
03. december 2001 - 16:58 #7
disky: ja, i dette tilfælde, men jeg tænkte mere
generelt; det kunne være man ikke kun havde int\'s,
og hvad med at overføre værdier fra tekstfelter, ellers
er der ikke megen grund til at have dem fremfor labels.
Du kan ikke overføre en værdi fra et teksfelt uden
at parse det; om du så kun har int\'s og bruger
Integer.parseInt() eller tillader 0.0 det kommer i
specifikationen.
PS Det er nemmere og hurtigere at bruge felter fremfor
get/set metoder, men næppe en god ide!
Avatar billede martinka Nybegynder
03. december 2001 - 17:11 #8
så... i kamphaner =)

Her har i jeres points... smut så med jer... brug nu ikke dem alle på en gang ;)
Avatar billede disky Nybegynder
04. december 2001 - 08:59 #9
Carsten jeg kigger ikke på værdien i textfeltet, jeg kigger på værdien der bliver lagt i text feltet, stor forskel :)

Og get/set metoder er altid at foretrække !



Martinka: tak for point.
Avatar billede carstenknudsen Nybegynder
04. december 2001 - 10:20 #10
disky:  det glæder mig at vi er enige :)
Avatar billede disky Nybegynder
04. december 2001 - 10:27 #11
:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester