JComponent () { myStartTracing = new JBCheckBox(JavaDebuggerBundle.message("checkbox.start.tracing")); myEndTracing = new JBCheckBox(JavaDebuggerBundle.message("checkbox.stop.tracing")); JButton filters = new JButton(JavaDebuggerBundle.message("checkbox.tracking.filters")); //DialogUtil.registerMnemonic(myStartTracing); //DialogUtil.registerMnemonic(myEndTracing); JPanel _panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 6, 0)); _panel.add(myStartTracing); _panel.add(myEndTracing); _panel.add(filters); _panel.setBorder(IdeBorderFactory.createTitledBorder(JavaDebuggerBundle.message("checkbox.tracing"))); ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JCheckBox toUncheck = null; if (myStartTracing.isSelected() && myEndTracing.isSelected()) { Object source = e.getSource(); if (myStartTracing.equals(source)) { toUncheck = myEndTracing; } else if (myEndTracing.equals(source)) { toUncheck = myStartTracing; } if (toUncheck != null) { toUncheck.setSelected(false); } } } }; myStartTracing.addActionListener(listener); myEndTracing.addActionListener(listener); filters.addActionListener(e -> { EditClassFiltersDialog dialog = new EditClassFiltersDialog(myProject); TraceSettings traceSettings = TraceSettings.getInstance(); dialog.setFilters(traceSettings.getClassFilters(), traceSettings.getClassExclusionFilters()); dialog.setTitle(JavaDebuggerBundle.message("tracing.class.filters")); dialog.show(); if (dialog.getExitCode() == DialogWrapper.OK_EXIT_CODE) { traceSettings.setClassFilters(dialog.getFilters()); traceSettings.setClassExclusionFilters(dialog.getExclusionFilters()); } }); return _panel; }