Могу ли я разместить одну и ту же кнопку на двух разных вкладках в JTabbedPane [дубликат]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Могу ли я разместить одну и ту же кнопку на двух разных вкладках в JTabbedPane [дубликат]

Сообщение Anonymous »

У меня есть JTabbedPane в приложении Swing, где две вкладки имеют общую функциональность. Вкладка 1 предназначена для одного, а вкладка 2 — для второго. Обе вещи имеют уникальные действия, а также пару кнопок, которые действуют одинаково в каждой.
Очевидно, что я могу дублировать кнопки, которые добавляю к вещи 1, чтобы поместить в вещь 2 и заставить их выполняться. те же действия, но я хотел бы повторно использовать кнопки, чтобы не синхронизировать их. (На самом деле в моем реальном приложении их гораздо больше, чем 2).
Вот код, который я сократил до разумного размера. Он компилируется и запускается самостоятельно. Обратите внимание, что на вкладке Thing2 есть все нужные мне компоненты, а на вкладке Thing1 есть только уникальные компоненты Thing1.
Непосредственно перед публикацией я задавался вопросом, не является ли проблема именно GroupLayout. Я попробую использовать BoxLayout, чтобы проверить, сохраняется ли проблема.
Изображение

Изображение

Код: Выделить всё

public class LowLevelMinimal extends JPanel {

// Variables declaration
public JButton jButton_Thing2;
public JButton jButton_Thing1;
public JButton jButton_Both2;
public JButton jButton_Both1;
private JLabel jLabel_Both2;
private JLabel jLabel_Both1;
private JLabel jLabel_Thing1;
public JTextField jTextField_Thing2;
public JTextField jTextField_Thing1;
public JTextField jTextField_Both2;
public JTextField jTextField_Both1;
private JPanel panel_Thing1;
private JPanel panel_Thing2;
private JTabbedPane jTabbedPaneChipType;

public LowLevelMinimal()
{
super();
initComponents();
}

private void initComponents()
{
jLabel_Thing1 = new JLabel("Label 1");
jTextField_Thing1 = new JTextField("ONE");
jButton_Thing1 = new JButton("Thing1 Go");
jTextField_Thing2 = new JTextField("TWO");
jButton_Thing2 = new JButton("Thing2 Go");
jLabel_Both1 = new JLabel("Turn On");
jLabel_Both2 = new JLabel("Turn Off");
jTextField_Both1 = new JTextField();
jTextField_Both2 = new JTextField();
jButton_Both1 = new JButton("First Both");
jButton_Both2 = new JButton("Second Both");
jTextField_Both1.setText("1");
jTextField_Both2.setText("2");

panel_Thing1 = new JPanel();
panel_Thing2 = new JPanel();
jTabbedPaneChipType = new JTabbedPane();
jTabbedPaneChipType.addTab("Thing1", panel_Thing1);
jTabbedPaneChipType.addTab("Thing2", panel_Thing2);

GroupLayout layoutThing1 = new GroupLayout(panel_Thing1);
panel_Thing1.setLayout(layoutThing1);
layoutThing1.setHorizontalGroup(layoutThing1.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layoutThing1.createSequentialGroup()
.addContainerGap()
.addGroup(layoutThing1.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layoutThing1.createSequentialGroup()
.addGroup(layoutThing1.createParallelGroup(GroupLayout.Alignment.TRAILING, false)
.addComponent(jLabel_Thing1, GroupLayout.Alignment.LEADING))
.addGroup(layoutThing1.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layoutThing1.createSequentialGroup()
.addGap(12, 12, 12)
.addGroup(layoutThing1.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jTextField_Thing1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(7, 7, 7)
.addGroup(layoutThing1.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jButton_Thing1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGroup(layoutThing1.createSequentialGroup()
.addComponent(jLabel_Both1, GroupLayout.PREFERRED_SIZE, 66, GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jTextField_Both1, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton_Both1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(layoutThing1.createSequentialGroup()
.addComponent(jLabel_Both2, GroupLayout.PREFERRED_SIZE, 66, GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jTextField_Both2, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton_Both2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE,  Short.MAX_VALUE))
).addContainerGap()
))));

layoutThing1.setVerticalGroup(layoutThing1.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layoutThing1.createSequentialGroup()
.addContainerGap()
.addGroup(layoutThing1.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jLabel_Both1, GroupLayout.Alignment.TRAILING)
.addComponent(jTextField_Both1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(jButton_Both1))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layoutThing1.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jLabel_Both2)
.addComponent(jTextField_Both2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(jButton_Both2))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layoutThing1.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jLabel_Thing1)
.addComponent(jTextField_Thing1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(jButton_Thing1))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addContainerGap()
));

GroupLayout layoutThing2 = new GroupLayout(panel_Thing2);
panel_Thing2.setLayout(layoutThing2);

layoutThing2.setHorizontalGroup(layoutThing2.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(
layoutThing2.createSequentialGroup()
.addContainerGap()
.addGroup(
layoutThing2.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(
layoutThing2.createParallelGroup(GroupLayout.Alignment.TRAILING, false)
.addGroup(
layoutThing2.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(
layoutThing2.createSequentialGroup()
.addGap(12, 12, 12)
.addGroup(layoutThing2.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jTextField_Thing2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(7, 7, 7)
.addGroup(layoutThing2.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jButton_Thing2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
)
.addGroup(
layoutThing2.createSequentialGroup()
.addComponent(jLabel_Both1, GroupLayout.PREFERRED_SIZE, 66, GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jTextField_Both1, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton_Both1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
)
.addGroup(layoutThing2.createSequentialGroup()
.addComponent(jLabel_Both2, GroupLayout.PREFERRED_SIZE, 66, GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jTextField_Both2, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton_Both2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
)))
).addContainerGap()
));

layoutThing2.setVerticalGroup(layoutThing2.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layoutThing2.createSequentialGroup()
.addContainerGap()
.addGroup(layoutThing2.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(jLabel_Both1, GroupLayout.Alignment.TRAILING)
.addComponent(jTextField_Both1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,  GroupLayout.PREFERRED_SIZE)
.addComponent(jButton_Both1))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layoutThing2.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jLabel_Both2)
.addComponent(jTextField_Both2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(jButton_Both2))
.addGroup(layoutThing2.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jTextField_Thing2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(jButton_Thing2))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addContainerGap()
));
this.add(jTabbedPaneChipType);
}

public static void main(String[] args)
{
JFrame frame = new JFrame("Test");
LowLevelMinimal llm = new LowLevelMinimal();
frame.getContentPane().add(llm);
frame.pack();
frame.setVisible(true);
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... tabbedpane
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»