You should be displaying the output in a MathMLViewer element, not a text field. MathML:-Export, which is needed to convert a maple expression to a MathML expression does not, alas, properly handle tables, and the output of tensor[create] is a table with two indices: index_char and compts. Fortunately, you don't want to display the value of index_chars, but rather the matrix stored in compts. Here is the code that does that

restart;
with(Maplets[Elements]):
A := matrix([[a,0,0],[0,a,0],[0,0,a]]);
with(tensor):
maplet := Maplet( Window(
'title'="test"
,[NULL
,["g_compts "
,TextField['TF1']('value' = eval(A), 60)
]
,MathMLViewer['MMLV1'](value = "")
,[NULL
,Button("create tensor", Evaluate('MMLV1' = 'MathML[Export](eval(tensor[create]([-1,-1],eval(TF1))[compts]))'))
,Button("OK", Shutdown())
]
])):
Maplets[Display]( maplet );