Вынутый прямо из JTree API
// If you are interested in detecting either double-click events or when a user clicks on a node, regardless of whether or not it was selected, we recommend you do the following:
final JTree tree = ...;
MouseListener ml = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
int selRow = tree.getRowForLocation(e.getX(), e.getY());
TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
if(selRow != -1) {
if(e.getClickCount() == 1) {
mySingleClick(selRow, selPath);
}
else if(e.getClickCount() == 2) {
myDoubleClick(selRow, selPath);
}
}
}
};
tree.addMouseListener(ml);
, Конечно, необходимо изменить его немного для щелчка правой кнопкой вместо, щелкают левой кнопкой
Хорошо, извиняюсь, вот решение:
Мой первоначальный вопрос почти сработал, нужно добавить только одно: удалить StartupUri из приложения XAML и после этого добавьте Показать в главное окно.
То есть:
<Application x:Class="DialogBeforeMainWindow.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup">
Выше, StartupUri удален .
Добавьте myMainWindow.Show () также:
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
Window1 myMainWindow = new Window1();
DialogWindow myDialogWindow = new DialogWindow();
myDialogWindow.ShowDialog();
myMainWindow.Show();
}
}
] Итак, вы хотите показать одно окно, затем другое, но закрыть приложение, когда это окно закрыто? Возможно, вам потребуется установить ShutdownMode на OnMainWindowClose и установить MainWindow на Window1, в соответствии со строками ok:
Window1 myMainWindow = new Window1();
Application.Current.ShutdownMode = ShutdownMode.OnMainWindowClose;
Application.Current.MainWindow = myMainWindow;
DialogWindow myDialogWindow = new DialogWindow();
myDialogWindow.ShowDialog();
вот, сделайте это вот так. это фактически изменит ваше главное окно и будет работать должным образом без изменения настроек объекта приложения.
не забудьте удалить обработчик событий для запуска приложения и установить StartupUri в файле app.xaml.
public partial class App : Application
{
bool init = false;
protected override void OnActivated(EventArgs e)
{
base.OnActivated(e);
if (!init)
{
this.MainWindow.Closing += new System.ComponentModel.CancelEventHandler(MainWindow_Closing);
init = true;
}
}
void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Window toClose = this.MainWindow;
this.MainWindow = new Window2();
this.MainWindow.Show();
}
}