Вы можете попробовать что-то вроде этого ..
public static class QueryableExtensions
{
public enum SortDirection { ASC,DESC}
static LambdaExpression CreateExpression(Type type, string propertyName)
{
var param = Expression.Parameter(type, "x");
Expression body = param;
body = propertyName.Split('.')
.Select(prop => body = Expression.PropertyOrField(body, prop))
.Last();
return Expression.Lambda(body, param);
}
public static IQueryable<T> SortBy<T>(this IQueryable<T> source,string expressionField,SortDirection sortDirection = SortDirection.ASC)
{
var lambdaExpression = CreateExpression(typeof(T), expressionField) as dynamic;
return sortDirection == SortDirection.ASC ? Queryable.OrderBy(source,lambdaExpression) : Queryable.OrderByDescending(source, lambdaExpression);
}
}
типов
public class TvRequests
{
public string Title { get; set; }
public OmbiUser RequestedUser { get; set; }
public DateTime Date { get; set; }
}
public class OmbiUser
{
public string Username;
public DateTime Date { get; set; }
}
с использованием
List<TvRequests> reqList = new List<TvRequests>();
reqList.Add(new TvRequests {
Title = "A",
Date = DateTime.Now.AddDays(-1),
RequestedUser = new OmbiUser
{
Username = "A",
Date = DateTime.Now.AddDays(-1)
}
});
reqList.Add(new TvRequests
{
Title = "C",
Date = DateTime.Now.AddDays(1),
RequestedUser = new OmbiUser
{
Username = "C",
Date = DateTime.Now.AddDays(1)
}
});
reqList.Add(new TvRequests
{
Title = "B",
Date = DateTime.Now,
RequestedUser = new OmbiUser
{
Username = "B",
Date = DateTime.Now
}
});
foreach (var item in reqList.AsQueryable().SortBy("Date", SortDirection.DESC))
Debug.WriteLine(item.Title);
foreach (var item in reqList.AsQueryable().SortBy("RequestedUser.Date"))
Debug.WriteLine(item.Title);
foreach (var item in reqList.AsQueryable().SortBy("RequestedUser.UserName",SortDirection.DESC))
Debug.WriteLine(item.Title);
JFrame.getFocusOwner()
(наследованный от Window.getFocusOwner()
) должен возвратить ссылку на компонент с фокусом. getMostRecentFocusOwner()
мог бы также представлять интерес.
Также взгляните на javax.swing. FocusManager
getFocusOwner () возвратит дочерний компонент, который в настоящее время фокусируется.
Но необходимо проверить, чтобы видеть, является ли это JTextField. Другие кнопки Мне нравится компонентов могли бы быть сфокусированы, если они существуют в Вашем кадре также.
Это учебное руководство должно быть довольно полезным для понимания фокуса.
Каждый JComponent имеет hasFocus метод, который можно использовать для проверки, если это фокусируется. Однако это было изменено, и теперь необходимо использовать isFocusOwner.
Таким образом работавший все текстовые поля в Вашем кадре, и проверяют каждого из них, если это - isFocusOwner путем вызова того метода.
Вы могли также получить владельца фокуса через кадр.