2016-07-11 16 views
0
private void btnActionPerformed(java.awt.event.ActionEvent evt) {          
    btn.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent e) { 
      JLabel label=new JLabel("test label"); 
      label.setBounds(0,0,135,14); 
      panel.add(label); 
      panel.repaint(); 

     } 
    }); 

} 

Ich möchte jedes Etikett an einer bestimmten Position im Panel wie Hinzufügen von Datensätzen zu einer Tabelle hinzufügen (angenommen Tabelle hat 4 Spalten). wie man das erreicht.Hinzufügen von mehreren jlabels an einer bestimmten Position jedes Mal, wenn ein jbutton gedrückt wird

+0

Verwenden Sie einen richtigen Layout-Manager, z.B. Gitterstruktur. Wenn Sie es mit Null-Layout tun, tun Sie es falsch. –

+0

eigentlich bin ich neu in Java. kannst du mir irgendeinen Link zur Verfügung stellen oder einen kleinen Code schreiben, um @ Coderino Javarino zu erklären –

Antwort

0

Ich bin nicht sicher, ob dies ist, was Sie suchen (mir sagen, wenn es nicht ist), aber hier ist es:

package test; 

import java.awt.BorderLayout; 
import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.*; 

public class TestPanel extends JPanel{ 

    JButton button; 
    JPanel innerPanel; 

    TestPanel() { 
     setLayout (new BorderLayout()); 
     button = new JButton("create label"); 
     button.addActionListener(l -> { 
      JLabel label = new JLabel("test label"); 
      label.setBorder(BorderFactory.createEtchedBorder()); 
      innerPanel.add(label); 
      innerPanel.revalidate(); 
     }); 
     add(button, BorderLayout.NORTH); 

     innerPanel = new JPanel(); 
     GridLayout layout = new GridLayout(0, 4); 
     innerPanel.setLayout(layout); 
     add(innerPanel, BorderLayout.CENTER); 
    } 


    public static void main (String[] args) { 

     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.add(new TestPanel()); 
     frame.setSize(640, 480); 
     frame.setVisible(true); 

    } 

} 
+0

danke für die Hilfe, aber ich tat es mit einem jtable statt ..: p –

Verwandte Themen