Avatar billede hejhejhej Nybegynder
28. august 2003 - 18:52 Der er 6 kommentarer og
1 løsning

Indsætte JLabel ved tryk på knap

Er det muligt at indsætte en JLabel mens et program kører? fx ved tryk på en knap
Avatar billede riversen Nybegynder
28. august 2003 - 19:03 #1
tilmeld din frame som actionlistener og tilføj så din JLabel i actionPerformed.
Avatar billede hejhejhej Nybegynder
28. august 2003 - 19:23 #2
Gider du komme med et lille eksempel
Avatar billede riversen Nybegynder
28. august 2003 - 19:35 #3
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Test extends JFrame implements ActionListener
{
    private JButton testButton;

    public Test()
    {
        super( "Testprogram" );
        testButton = new JButton( "Testbutton" );
        testButton.addActionListener( this );

        getContentPane().add( testButton );

        pack();
        show();
    }

    public void actionPerformed( ActionEvent e )
    {
        getContentPane().add( new JLabel( "Label som tilføjes ved klik på knap" ) );
        pack();
    }
    public static void main( String[] args )
    {
        new Test();
    }
}

det viser vist idéen ;-)
Avatar billede _carsten Nybegynder
28. august 2003 - 20:04 #4
Tillader mig at smide et eksempel som måske virker lidt bedre
> riversen (no offence)

import javax.swing.*;

public class AddLabel extends JFrame {
   
    public AddLabel() {
        initComponents();
        setSize(400,400);
    }

    private void initComponents() {
        jPanel1 = new JPanel();
        jButton1 = new JButton();

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

        jButton2.setText("Tilf\u00f8j en JLabel");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                addLabel(evt);
            }
        });

        getContentPane().add(jButton1, java.awt.BorderLayout.NORTH);

        pack();
    }

    private void addLabel(java.awt.event.ActionEvent evt) {
        count++;
        label = new JLabel(" Nr. " + Integer.toString(count));
        jPanel1.add(label);
        paintComponents(getGraphics());
    }
   
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }
   
    public static void main(String args[]) {
        new AddLabel().show();
    }
   
   
    private JButton jButton1;
    private JPanel jPanel1;
    private JLabel label;
    private int count = 0;
}
Avatar billede riversen Nybegynder
28. august 2003 - 20:11 #5
er udemærket godt klar over mit eksempel er dårligt, men det viser princippet :-)
Avatar billede arne_v Ekspert
28. august 2003 - 22:24 #6
Endnu et eksempel:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DynamicAdd extends JFrame implements ActionListener {
    private JButton button;
    private int n;

    public DynamicAdd() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new GridLayout(10, 10));
        button = new JButton("Add button");
        button.addActionListener(this);
        getContentPane().add(button);
        pack();
        n = 1;
    }

    public void actionPerformed(ActionEvent ev) {
        if (ev.getSource() == button) {
            getContentPane().add(new JLabel("Label " + n));
            pack();
            n++;
        }
    }

    public static void main(String[] args) {
        DynamicAdd f = new DynamicAdd();
        f.show();
    }
}
Avatar billede hejhejhej Nybegynder
29. august 2003 - 13:40 #7
Jeg takker for svarene
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