Кто-либо знает, как Вы получили бы экран width в Java? Я считал что-то о некотором методе инструментария, но я не совсем уверен, каково это.
Спасибо, Andrew
java.awt.Toolkit.getDefaultToolkit().getScreenSize()
Следующий код должен сделать это (не пробовал):
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
gd.getDefaultConfiguration().getBounds().getWidth();
edit:
Для нескольких мониторов вы должны использовать следующий код (взятый из javadoc of java.awt.GraphicsConfiguration
:
Rectangle virtualBounds = new Rectangle();
GraphicsEnvironment ge = GraphicsEnvironment.
getLocalGraphicsEnvironment();
GraphicsDevice[] gs =
ge.getScreenDevices();
for (int j = 0; j < gs.length; j++) {
GraphicsDevice gd = gs[j];
GraphicsConfiguration[] gc =
gd.getConfigurations();
for (int i=0; i < gc.length; i++) {
virtualBounds =
virtualBounds.union(gc[i].getBounds());
}
}
OP, вероятно, хотел что-то вроде этого:
Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
Toolkit имеет ряд классов, которые могут помочь:
В итоге мы используем 1 и 2, чтобы вычислить полезный максимальный размер окна. Чтобы получить соответствующую GraphicsConfiguration, мы используем
GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].getDefaultConfiguration();
, но могут быть более умные решения для нескольких мониторов.
Toolkit.getDefaultToolkit().getScreenSize().getWidth()
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Вот два метода, которые я использую, которые учитывают несколько мониторов и вставок панели задач. Если вам не нужны эти два метода по отдельности, вы, конечно, можете избежать двойного получения графической конфигурации.
static public Rectangle getScreenBounds(Window wnd) {
Rectangle sb;
Insets si=getScreenInsets(wnd);
if(wnd==null) {
sb=GraphicsEnvironment
.getLocalGraphicsEnvironment()
.getDefaultScreenDevice()
.getDefaultConfiguration()
.getBounds();
}
else {
sb=wnd
.getGraphicsConfiguration()
.getBounds();
}
sb.x +=si.left;
sb.y +=si.top;
sb.width -=si.left+si.right;
sb.height-=si.top+si.bottom;
return sb;
}
static public Insets getScreenInsets(Window wnd) {
Insets si;
if(wnd==null) {
si=Toolkit.getDefaultToolkit().getScreenInsets(GraphicsEnvironment
.getLocalGraphicsEnvironment()
.getDefaultScreenDevice()
.getDefaultConfiguration());
}
else {
si=wnd.getToolkit().getScreenInsets(wnd.getGraphicsConfiguration());
}
return si;
}