Merhaba arkadaşlar, jTabPane üzerine eklenebilir ve silinebilir tab'lar nasıl oluturabilirim? Tabların üzerinde x işareti çıkması ve buna basılınca o tab kapanması gerekiyor

soruldu: 03 Tem '12, 08:42

saidghrnk's gravatar image

saidghrnk
111283536
cevap kabul oranı: 0%

değiştirildi: 05 Tem '12, 07:39

CemIkta's gravatar image

CemIkta ♦
19.8k29125190


http://www.jidesoft.com/products/download.htm

bu sayfada ki en basta ki jnlp yi indiriniz acılan uygulamada jide components altında ki ilk linke tıkladığınızda aclıan uygulamacıkta istediğiniz komponent var sağdaki butona tıklayıp kodunu görebilirsiniz

permanent link

cevaplandı: 03 Tem '12, 10:11

trueLife's gravatar image

trueLife
699182430
cevap kabul oranı: 10%

ayrıca aşşağıda core swing ile de yapılmış örneği var siz close yerine x koyarsınız cok şık olur :)

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;

public class AddButtonToTabBar extends JFrame {
  private JTabbedPane tp;

  private JLabel lblStatus;

  private int tabCounter = 0;

  public AddButtonToTabBar() {
    super("Browser");
    setDefaultCloseOperation(EXIT_ON_CLOSE);

    JMenuBar mb = new JMenuBar();
    JMenu mFile = new JMenu("File");
    JMenuItem mi = new JMenuItem("Add Tab");
    ActionListener addTabl = new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        addTab();
      }
    };
    mi.addActionListener(addTabl);
    mFile.add(mi);
    mb.add(mFile);
    setJMenuBar(mb);

    JPanel pnlURL = new JPanel();
    tp = new JTabbedPane();
    addTab();
    getContentPane().add(tp, BorderLayout.CENTER);

    lblStatus = new JLabel(" ");
    getContentPane().add(lblStatus, BorderLayout.SOUTH);

    setSize(300, 300);
    setVisible(true);
  }

  void addTab() {
    JEditorPane ep = new JEditorPane();
    ep.setEditable(false);
    tp.addTab(null, new JScrollPane(ep));

    JButton tabCloseButton = new JButton("Close");
    tabCloseButton.setActionCommand("" + tabCounter);

    ActionListener al;
    al = new ActionListener() {
      public void actionPerformed(ActionEvent ae) {
        JButton btn = (JButton) ae.getSource();
        String s1 = btn.getActionCommand();
        for (int i = 1; i < tp.getTabCount(); i++) {
          JPanel pnl = (JPanel) tp.getTabComponentAt(i);
          btn = (JButton) pnl.getComponent(0);
          String s2 = btn.getActionCommand();
          if (s1.equals(s2)) {
            tp.removeTabAt(i);
            break;
          }
        }
      }
    };
    tabCloseButton.addActionListener(al);

    if (tabCounter != 0) {
      JPanel pnl = new JPanel();
      pnl.setOpaque(false);
      pnl.add(tabCloseButton);
      tp.setTabComponentAt(tp.getTabCount() - 1, pnl);
      tp.setSelectedIndex(tp.getTabCount() - 1);
    }

    tabCounter++;
  }

  public static void main(String[] args) {
    new AddButtonToTabBar();

  }
}
permanent link

cevaplandı: 03 Tem '12, 10:43

trueLife's gravatar image

trueLife
699182430
cevap kabul oranı: 10%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,076
×79

Soruldu: 03 Tem '12, 08:42

Görüntüleme: 686 kez

Son güncelleme: 05 Tem '12, 07:39

powered by BitNami OSQA