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
Annonceindlæg fra Academic Work Denmark A/S
28. august 2003 - 19:03
#1
tilmeld din frame som actionlistener og tilføj så din JLabel i actionPerformed.
28. august 2003 - 19:23
#2
Gider du komme med et lille eksempel
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 ;-)
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; }
28. august 2003 - 20:11
#5
er udemærket godt klar over mit eksempel er dårligt, men det viser princippet :-)
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(); } }
29. august 2003 - 13:40
#7
Jeg takker for svarene
Kurser inden for grundlæggende programmering