Только что пришел к этой проблеме. Приносит SSCE со мной! :-)JAVA Как получить вкладку из JTabbedPane by mousePosition
Я хотел бы получить содержимое вкладки (компонент), дважды щелкнув по его «заголовку».
Я даю вам этот SSCE, и в этом случае я хотел бы получить JLabel, дважды щелкнув по названию tab-menu. (Green Tab), и я хотел бы получить JLabel «Я - лейбл 2!».
есть код:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SSCE extends JFrame {
private JTabbedPane tab;
public SSCE() {
tab = new JTabbedPane();
this.add(tab);
JLabel p = new JLabel("I am label 1!");
tab.addTab("Red tab",p);
JLabel p2 = new JLabel("I am label 2!");
tab.addTab("Green tab",p2);
JLabel p3 = new JLabel("I am label 3!");
tab.addTab("Blue tab",p3);
JLabel p4 = new JLabel("I am label 4!");
tab.addTab("Cyan tab", p4);
tab.addMouseListener(new MouseAdapter(){
@Override
public void mousePressed(MouseEvent e) {
if (e.getClickCount() > 1) {
Component c = tab.getComponentAt(new Point(e.getX(), e.getY()));
//TODO Find the right label and print it! :-)
JLabel innerComponent = (JLabel) c;
System.out.println("Found:" + innerComponent.getText());
}
}
});
}
public static void main(final String[] args) throws Exception {
SSCE start = new SSCE();
start.setDefaultCloseOperation(EXIT_ON_CLOSE);
start.setVisible(true);
start.setSize(new Dimension(450,300));
}
}
Можно ли сделать это как-то? Я пробовал много всего. Но не повезло :-( Огромное вам спасибо за помощь!
Что я пытаюсь сделать, это реализовать функциональность JTabbedPane. Поэтому, когда вы дважды щелкаете по «Title», он откроет диалог с содержанием вкладки вы дважды нажал на.
Я знаю, как создать диалог и так далее .. Но я не знаю, как получить компонент только с щелчком мышью по названию.
Ну а .getSelectedTab() не дает вкладку Проппер, если дважды щелкнуть на не выбранную вкладку она по-прежнему дает тот, который выбран в данный момент, а не тот, который вы нажали at: -/ – MrDoda
Я ищу способ получить компонент внутри вкладки, дважды щелкнув по «Заголовок». Должен быть способ ... Когда вы нажимаете на него, открывается правая вкладка. Так что это также могло бы дать вы знаете, что скрывается за «заголовком» :-( – MrDoda
Я пытаюсь реализовать функции JTabbedPane. Поэтому, когда вы дважды щелкните по «Title», он откроет диалог с содержимым Вставьте двойное нажатие. – MrDoda