Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9でStackWalkerの各スタック要素にアクセスするにはどうすればよいですか?


Java9でStackWalkerが導入されました API Thread.getStackTrace()の代わりとして またはThrowable.getStackTrace() およびSecurityManager.getClassContext() 。このAPIは、必要なスタックフレームをトラバースしてマテリアライズするメカニズムを対象としているため、必要に応じて追加のスタックフレームに効率的に遅延アクセスできます。

例外スタックトレースの各スタック要素にアクセスする必要がある場合は、 getStackTrace()を使用できます。 スロー可能の方法 クラス。 配列を返します StackTraceElementの。

import java.util.*;

// Test1 class
class Test1 {
   public void test() throws Exception {
      Test2 test2 = new Test2();
      test2.test();
   }
}

// Test2 class
class Test2 {
   public void test() throws Exception {
      System.out.println(1/0);
   }
}

// Main class
public class StackWalkerTest {
   public static void main(String args[]) {
      Test1 test1 = new Test1();
      try {
         test1.test();
      } catch(Exception e) {
         Arrays.stream(e.getStackTrace()).forEach(System.out::println);
      }
   }
}

出力

Test2.test(StackWalkerTest.java:14)
Test1.test(StackWalkerTest.java:7)
StackWalkerTest.main(StackWalkerTest.java:23)

  1. JavaでJListの各アイテムにツールチップテキストを設定するにはどうすればよいですか?

    JList JComponentのサブクラスです クラスであり、ユーザーが1つ以上のアイテムを選択できるオブジェクトのリストを表示するために使用できます。 JListはListSelectiionListenerを生成できます インターフェースであり、抽象メソッド valueChanged()を実装する必要があります 。 JToolTip クラス コンポーネントのテキストまたはヒントを表示するために使用されます。getToolTipText()を実装することで、リストの各アイテムにツールチップテキストを設定できます。 JToolTipのメソッド クラス。 例 import java.

  2. JavaでJTableの各列幅を変更するにはどうすればよいですか?

    JTable JTable JComponentのサブクラスです 複雑なデータ構造を表示するため。 JTable Model View Controller(MVC)デザインパターンに従うことができます 行にデータを表示するため および列 。 DefaultTableModel クラスはAbstractTableModelを拡張できます また、行と列を JTableに追加するために使用できます。 動的に。 DefaultTableCellRenderer クラスはJLabelを拡張できます クラスであり、画像を追加するために使用できます 、色付きのテキスト J