動くはずですが…
複数モニターサポートは AWT API (GraphicsEnvironment, GraphicsDevice, GraphicsConfiguration) それぞれの正しい実装に依存しています。テストプログラムをコンパイルして実行してみてください。このプログラムはいくつかの JFrames をそれぞれのモニターに表示するはずれす。フレームが最初のモニターにすべて配置されるのであればグラフィックカードとドライバーの情報とともに JDK に対してバグを登録してください。
もし以下のプログラムが正しく動くのにもかかわらず NetBeans が正しく動かないのであれば NetBeans に対してバグを報告してください。
import java.awt.*;
import javax.swing.*;
public class MultiMonitors
{
public static void main(String[] argv) {
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++) {
JFrame f =
new JFrame(gs[j].getDefaultConfiguration());
GCCanvas c = new GCCanvas(gc[i]);
Rectangle gcBounds = gc[i].getBounds();
int xoffs = gcBounds.x;
int yoffs = gcBounds.y;
f.getContentPane().add(c);
f.setTitle("Screen# "+Integer.toString(j)+", GC# "+Integer.toString(i));
f.setSize(300, 150);
f.setLocation((i*50)+xoffs, (i*60)+yoffs);
f.show();
}
}
}
static class GCCanvas extends Canvas
{
GraphicsConfiguration gc;
Rectangle bounds;
public GCCanvas(GraphicsConfiguration gc) {
super(gc);
this.gc = gc;
bounds = gc.getBounds();
}
public Dimension getPreferredSize() {
return new Dimension(300, 150);
}
public void paint(Graphics g) {
g.setColor(Color.red);
g.fillRect(0, 0, 100, 150);
g.setColor(Color.green);
g.fillRect(100, 0, 100, 150);
g.setColor(Color.blue);
g.fillRect(200, 0, 100, 150);
g.setColor(Color.black);
g.drawString("ScreenSize="+
Integer.toString(bounds.width)+
"X"+ Integer.toString(bounds.height), 10, 15);
g.drawString(gc.toString(), 10, 30);
}
}
}