これが他の場所で回答されている場合は、事前に申し訳ありません。おそらく間違ったタグを検索しているだけです。
ActionListener を実装する匿名内部クラスを使用して、さまざまな変数のログ ファイルを作成したいと考えています。これは JButton にアタッチされます。
フォーマッターを使用すると、行に必要なものが正確に得られますが、このイベントの以前のログをすべて保持したい (最後のエントリの前か後かは気にしません)。
このサイトや他のサイトをサーフィンして見つけたさまざまな方法で壁にぶつかった後、フォーマッターを使用してコンストラクターの追加メソッドでこれを実行できる可能性があります。
Formatter を使用して内部クラスで追加を使用することは可能ですか?
そうでない場合は、私のニーズを満たす別の Java ライターを提案できますか? 私はまだ初心者なので、複雑ではないほど良いです...今のところ.
内部クラス内で、追加のインポート/パッケージなしでフォーマッターを使用できる場合は、ヒントまたはリンクを提供してください。検索を続けます。
コンパイル可能な小さなサンプル コードを添付しました。
ありがとう、週末戦士84
import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Formatter;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class TestProgram extends JFrame{
private FlowLayout lay;
public TestProgram(){
super("Sample Program");
lay = new FlowLayout();
setLayout(lay);
final JLabel label1 = new JLabel("Label One");
add(label1);
final TextField field1 = new TextField(8);
add(field1);
final JLabel label2 = new JLabel("Exception Label");
add(label2);
final JButton button1 = new JButton
("Log Data");
add(button1);
button1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
if(button1.isSelected());
try{
Formatter fm = new Formatter("C:\\Test\\testlog.txt");
fm.format("%s%s%s%s", "Sample Value: ",label1.getText(),
" Sample Value2: ",field1.getText());
fm.close();
}
catch(Exception ee){
label2.setText("Make Sure Path exists, C:\\Test\\testlog.txt");
}
}
}
);
}
}
主要
import javax.swing.JFrame;
public class TestMain{
public static void main (String[] args){
TestProgram ts = new TestProgram();
ts.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ts.setSize(1200,500);
ts.setVisible(true);
}
}