当我尝试运行此代码时,由于某种原因,它会导致JFrame稍微向右偏移约10个像素,并且窗口的高度超出了任务栏,以达到所需的效果。在任务栏上完成。
我尝试将jframe设置为Undecorated,这解决了整个问题,所有问题最终都解决了。但是我将第二个未设置为false的东西似乎移位并破坏了窗口的位置。
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GraphicsEnvironment;
import java.awt.Toolkit;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class Component extends JComponent
{
/**
*
*/
private static final long serialVersionUID = 1L;
public int width, height;
public int tps;
private Game game;
public Component()
{
Toolkit kit = this.getToolkit();
width = (int) kit.getScreenSize().getWidth();
height = (int) GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight();
setLayout(new BorderLayout());
setPreferredSize(new Dimension(width, height));
game = new Game(this);
add(game);
initWindow("Test", this);
}
public void initWindow(String title, JComponent component)
{
JFrame jf = new JFrame(title);
jf.setResizable(false);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.add(component);
jf.pack();
jf.setLocationRelativeTo(null);
jf.setVisible(true);
}
}
答案 0 :(得分:0)
问题是您正在import csv
s = 'hello, my name is "Joe"'
with open('out.csv', 'w', newline='', encoding='utf-8') as f_out:
writer = csv.writer(f_out, quotechar="'")
writer.writerow([s])
的构造函数中调用'hello, my name is "Joe"'
,因此将大小调整请求应用于框架的 content 。 setPreferredSize
创建装饰时,它会添加到该尺寸。解决方案是将对Component
的呼叫JFrame
应用于setPreferredSize
:
JFrame
这是一个演示程序,至少在我的系统上,该程序会重现问题并演示解决方案。取消注释 1 并注释掉 2 即可重现该问题。逆转注释掉的行即可解决。
initWindow