public class FrameDemo extends JPanel
{
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D)g;
String[] read file contents using FileArrayProvider
for loop through above String array
g2.draw(new Line2D.Double(...));
}
public static void main(String[] args)
{
JFrame frame = new JFrame("JFrame Example");
frame.add(new FrameDemo());
frame.setSize(300, 150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
class FileArrayProvider // taken from StackOverFlow
{
public String[] readLines(String filename) throws IOException
{
FileReader fileReader = new FileReader(filename);
BufferedReader bufferedReader = new BufferedReader(fileReader);
java.util.List<String> lines = new ArrayList<String>();
String line = null;
while((line=bufferedReader.readLine())!=null)
{
lines.add(line);
}
bufferedReader.close();
return lines.toArray(new String[lines.size()]);
}
}
こんにちは、描画線のためにファイル行を読み込んだところで、数百万を超えるような行がかなりあります。結果として、私のフレームはしばらくフリーズします...それを行う正しい方法ですか?それを行うためのより良い方法はありますか?フリーズしないように、フレームを表示するときにすべてのラインを描画しますか?java-jframe-drawline
私はダブルバッファリングがスイングではデフォルトでオンになっていると思いますか? –